【发布时间】:2017-08-27 07:26:00
【问题描述】:
我需要将我的新对象推送到对象数组中并检查:如果新对象不与开始值和结束值存在的对象重叠。我写这个。我可以让它更短吗?或者也许有更好的方法来做到这一点?
let arr = [
{
start: 0,
end: 10
},
{
start: 30,
end: 40
},
{
start: 60,
end: 70
},
{
start: 100,
end: 110
},
{
start: 140,
end: 150
},
{
start: 180,
end: 190
}
];
let objToPush = {
start: 45,
end: 50
}
if (!arr.find(o => objToPush.start > o.start && objToPush.start < o.end)) {
if (!arr.find(o => objToPush.end > o.start && objToPush.end < o.end)) {
console.log('push');
arr.push(objToPush);
} else {
console.log('not push');
}
} else {
console.log('not push');
}
【问题讨论】:
-
生成一个查找表,这样您就不需要一遍又一遍地搜索整个结构
-
感谢您的解决方案,但我对 js 有点陌生。查找表是什么意思?它是另一个对象吗?
-
@redu,没有他的代码不起作用。
-
@SPHINX 那么您认为这对 OP 有何帮助? ://
标签: javascript arrays mutual-exclusion