【发布时间】:2017-05-24 11:31:44
【问题描述】:
我有两个数组。第一个是索引数组,第二个是对象数组。它们看起来像这样:
var nums = [0, 2];
var obj = [Object_1, Object_2, Object_3];
在这种特殊情况下,我需要删除除obj[0] 和obj[2] 之外的所有“obj”元素。所以结果会是这样的:
obj = [Object_2]
也可能有nums = [0, 1, 2]和obj = [Object_1, Object_2, Object_3]的情况;在这种情况下,我不需要删除任何元素。
“obj”的长度总是大于“nums”的长度。
所以我开始只查找需要保存的元素:
nums.forEach(function(key) {
obj.forEach(function(o, o_key) {
if (key === o_key) {
console.log(key, o);
// deleting remaining elements
}
});
});
问题:如何删除不符合条件的元素?我不需要新数组,我想修改现有的“obj”数组。我怎样才能实现这个功能?还是我应该使用其他一些技术?
【问题讨论】:
-
为什么在第一种情况下删除给定的索引而在第二种情况下相反?
-
我同意@NinaScholz 第二个案例不应该是
nums = []
标签: javascript arrays algorithm array-splice