{__ob__: Observer} startTime : "13:0:0" stopTime : "14:0:0"} 判断这个对象在0 : startTime : "13:0:0" stopTime : "14:0:0" __ob__ : Observer {value: {…}, shallow: false, mock: false, dep: Dep, vmCount: 0} get startTime : ƒ reactiveGetter() set startTime : ƒ reactiveSetter(newVal) get stopTime : ƒ reactiveGetter() set stopTime : ƒ reactiveSetter(newVal) [[Prototype]] : Object 1 : startTime : "16:0:0" stopTime : "17:0:0" __ob__ : Observer {value: {…}, shallow: false, mock: false, dep: Dep, vmCount: 0} get startTime : ƒ reactiveGetter() set startTime : ƒ reactiveSetter(newVal) get stopTime : ƒ reactiveGetter() set stopTime : ƒ reactiveSetter(newVal) [[Prototype]] : Object 2 : startTime : "16:0:0" stopTime : "0:0:0" __ob__ : Observer {value: {…}, shallow: false, mock: false, dep: Dep, vmCount: 0} get startTime : ƒ reactiveGetter() set startTime : ƒ reactiveSetter(newVal) get stopTime : ƒ reactiveGetter() set stopTime : ƒ reactiveSetter(newVal) [[Prototype]] : Object 3 : startTime : "16:22:58" stopTime : "19:22:58" 这个数组中的下标位置,代码怎么写
时间: 2023-12-14 14:37:22 浏览: 31
如果要判断数组中某个对象的 startTime 和 stopTime 是否与某个时间段重叠,可以使用以下代码:
```javascript
const time = "15:30:00"; // 要判断的时间
const arr = [
{ startTime: "13:0:0", stopTime: "14:0:0" },
{ startTime: "16:0:0", stopTime: "17:0:0" },
{ startTime: "16:0:0", stopTime: "0:0:0" },
{ startTime: "16:22:58", stopTime: "19:22:58" },
];
for (let i = 0; i < arr.length; i++) {
const { startTime, stopTime } = arr[i];
if (startTime <= time && time <= stopTime) {
// 重叠
console.log(`时间段${i}与${time}重叠`);
}
}
```
这段代码会遍历数组中的每个对象,分别取出 startTime 和 stopTime,然后将要判断的时间与其进行比较,如果在时间段内,则认为重叠。如果要获取重叠的时间段的具体信息,可以将判断重叠的逻辑放到一个函数中,并返回重叠的对象列表。
相关问题
{__ob__: Observer} startTime : "13:0:0" stopTime : "14:0:0"} 判断这个对象在0 : startTime : "13:0:0" stopTime : "14:0:0" __ob__ : Observer {value: {…}, shallow: false, mock: false, dep: Dep, vmCount: 0} get startTime : ƒ reactiveGetter() set startTime : ƒ
这个对象是一个响应式对象,它有两个属性,startTime 和 stopTime。__ob__ 是一个特殊的属性,它是 Vue.js 内部用来实现响应式的,通常我们不需要直接访问它。 startTime 和 stopTime 都有对应的 getter 和 setter 函数,这些函数在对象被访问或修改时会被触发。
要判断这个对象是否在0点到1点之间,可以先将 startTime 和 stopTime 转换成对应的时间戳,然后比较它们与0点和1点的时间戳的大小关系。具体实现可以参考下面的代码:
```javascript
// 将时间字符串转换成时间戳
function getTimeStamp(timeStr) {
const [hour, minute, second] = timeStr.split(':');
return +new Date(0, 0, 0, hour, minute, second);
}
const obj = {
startTime: '13:0:0',
stopTime: '14:0:0',
__ob__: new Observer(),
get startTime() {
return this.__ob__.value.startTime;
},
set startTime(val) {
this.__ob__.value.startTime = val;
},
get stopTime() {
return this.__ob__.value.stopTime;
},
set stopTime(val) {
this.__ob__.value.stopTime = val;
},
};
const startTimestamp = getTimeStamp(obj.startTime);
const stopTimestamp = getTimeStamp(obj.stopTime);
const zeroTimestamp = getTimeStamp('0:0:0');
const oneTimestamp = getTimeStamp('1:0:0');
if (startTimestamp >= zeroTimestamp && stopTimestamp <= oneTimestamp) {
console.log('在0点到1点之间');
} else {
console.log('不在0点到1点之间');
}
```
__ob__: Observer
__ob__: Observer是Vue.js中的一个内部属性,用于观察数据的变化并更新视图。 在Vue.js中,每个组件都会有一个名为__ob__的Observer对象,它负责监听数据的变化并在必要时更新视图。这个属性是不可枚举的,所以在访问对象的属性时会返回undefined。 在一些特定的情况下,我们可能需要获取对象本身而不包含__ob__: Observer属性。可以使用JSON.parse(JSON.stringify(obj))来获取对象的副本,这样副本中就不会包含__ob__: Observer属性了。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* [关于 Vue “__ob__:Observer“ 属性的解决方案](https://blog.csdn.net/qq_60353088/article/details/125580345)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 33.333333333333336%"]
- *2* [【 javascript】获取数组 或者 对象本身,去除__ob__: Observer](https://blog.csdn.net/weixin_55846296/article/details/124272856)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 33.333333333333336%"]
- *3* [浏览器控制台日志是[{…}, __ob__: Observer] 这个是什么意思](https://blog.csdn.net/weixin_35751412/article/details/129068857)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 33.333333333333336%"]
[ .reference_list ]