我有两个JavaScript数组(例如newvalue
和oldvalue
)。
这两个数组包含一些常见值。我想从数组oldvalue
中删除newvalue
中的所有值。
示例:说newvalue
的值为1,2,3,4,oldvalue
的值为2,3我想从newvalue
和newvalue
中删除2,3应该有值1,4
这必须在JavaScript中完成。
将此视为新值
[
{"patentid":1,
"Geography":"china",
"type":"utility",
"Assignee":"abc"
},
{"patentid":2,
"Geography":"aus",
"type":"utility",
"Assignee":"abc"
},
{"patentid":3,
"Geography":"aus",
"type":"utility",
"Assignee":"abc"
},
{"patentid":4,
"Geography":"china",
"type":"utility",
"Assignee":"xyz"
}
]
consider this as old value
[{"patentid":3,
"Geography":"aus",
"type":"utility",
"Assignee":"abc"
},
{"patentid":4,
"Geography":"china",
"type":"utility",
"Assignee":"xyz"
}]
现在我必须删除newvalue中专利号为3和4的对象
答案 0 :(得分:1)
如果它实际上是公共对象(也就是说,o1 === o2为真),那么你可以这样做:
var o1 = { id: 1 };
var o2 = { id: 2 };
var o3 = { id: 3 };
var o4 = { id: 4 };
var newvalue = [o1, o2, o3, o4];
var oldvalue = [o2, o3];
newvalue = newvalue.filter(function(e) { return oldvalue.indexOf(e) === -1 });
答案 1 :(得分:1)
您可以使用 .state('main.content', {
url: '',
views: {
'content-one': {
templateUrl: 'templates/staging-area/content.html',
controller: 'ContentCtrl'
},
'content-two': {
templateUrl: 'templates/staging-area/content.html',
controller: 'ContentCtrl'
}
}
})
和Array.filter
功能解决此问题。
您的示例可以像这样解决:
Array.indexOf
您也可以使用像lodash这样的库,它具有很多函数来解决这些类型的数组操作。