我尝试在两个数组中查找元素,但是不起作用。比较值x
在JavaScript中
值=
(1)高度:33 id:0宽度:41 x:703.2585296630859 y:246.32955852224802
valueArea =
(1)高度:33 id:2宽度:41 x:703.2585296630859 y:246.32955852224802
(2)高度:21 id:1宽度:60 x:672.8721689562212 y:213.45216754521646
for(var i=0; i<values.length;i++){
for(var j=0; j<valueArea.length; j++){
if(values[i].x != valueArea[j].x){
valueArea.push(values[i]);
}
}
}
预先感谢。
最佳答案
我想我知道您要做什么。您有两个数组,它们可能包含重复项。
您要将非重复项从第一个数组复制到第二个。
像这样:
var x = [1, 2, 3, 4, 5, 6, 7]
var y = [2, 4, 6, 8, 10]
x.forEach( function (i) {
if(y.indexOf(i) < 0) {
y.push(i);
}
});
x
// [1, 2, 3, 4, 5, 6, 7]
y
// [2, 4, 6, 8, 10, 1, 3, 5, 7]
因此,您需要:
values.forEach( function (i) {
if(valueArea.indexOf(i) < 0) {
valueArea.push(i);
}
});
要么
var nonDuplicates = values.filter(function(i){ return valueArea.indexOf(i) < 0; });
valueArea.push.apply(valueArea, nonDuplicates);