我尝试在两个数组中查找元素,但是不起作用。比较值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);

09-11 20:10