【发布时间】:2017-03-27 11:57:26
【问题描述】:
我想根据包含对象的现有数组获取 2 个新数组。 (每个对象的键保持不变)
newArray1 对象的值应该是唯一的。换句话说:
[
{Layer:"Layer",LayerName:"foo",LayerWidth:200,LayerHeight:400},
{Layer:"Layer",LayerName:"FOOBAR",LayerWidth:200,LayerHeight:400},
{Layer:"Layer",LayerName:"foo",LayerWidth:200,LayerHeight:400}
]
newArray1 应该由第一个和第二个对象组成,因为第三个对象与第一个对象具有相同的对象值。
newArray2 应该包含所有其他不在 newArray1 中的对象,(仅限第三个对象)
arr = []
for(var i=0;i<allSymbols.length;i++){
var obj={
Layer: allSymbols(i),
LayerName: allSymbols(i).name(),
LayerWidth: allSymbols(i).width(),
LayerHeight: allSymbols(i).height()
}
arr.push(obj)
}
// filter so far...
for(var u=0;u<arr.length;u++){
var filter = arr[u];
arr = arr.filter(function(item){
for(var key in filter){
if(item[key] == filter[key]){
return true
}
}
return false
});
}
// output newArray1(arr)?
// output newArray2?
【问题讨论】:
标签: javascript arrays