从JavaScript数组

时间:2015-06-26 12:20:32

标签: javascript

我有两个JavaScript数组(例如newvalueoldvalue)。

这两个数组包含一些常见值。我想从数组oldvalue中删除newvalue中的所有值。

示例:说newvalue的值为1,2,3,4,oldvalue的值为2,3我想从newvaluenewvalue中删除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的对象

2 个答案:

答案 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这样的库,它具有很多函数来解决这些类型的数组操作。