如何使用javascript从数组中删除元素
我有2个阵列,希望根据第一个阵列上的位置编号删除第二个阵列的元素如何使用javascript从数组中删除元素,javascript,jquery,arrays,Javascript,Jquery,Arrays,我有2个阵列,希望根据第一个阵列上的位置编号删除第二个阵列的元素 var notexists = []; //value is "1","5","8" on 0,1,2nd position. var copyrequiredfields = [];//Value is "a","b","c","d","e","f",... for (var i = 0; i < notexists.length; i++) { copyrequiredfields.splice(parseI
var notexists = []; //value is "1","5","8" on 0,1,2nd position.
var copyrequiredfields = [];//Value is "a","b","c","d","e","f",...
for (var i = 0; i < notexists.length; i++) {
copyrequiredfields.splice(parseInt(notexists[i]), 1);
}
var notexists=[]//值在0,1,2位置为“1”、“5”、“8”。
var copyrequiredfields=[]//值为“a”、“b”、“c”、“d”、“e”、“f”,。。。
for(var i=0;i
根据示例,我想从copyrequiredfields中删除第1个、第5个和第8个元素。
请给出一些答案。创建一个新数组,迭代copyrequiredfields,当Note中的索引存在时,忽略它 例如:
var notexist = [1,2,5];
var copyrequiredfields = ['a','b','c','d','e','f','g'];
//create a index map
var index_map = {};
for(var i = 0; i < notexist.length; i++){
index_map[notexist[i]] = true;
}
//remove the elements
var newarray = [];
for(var i = 0; i < copyrequiredfields.length; i++){
if(!index_map[i]){
newarray.push(copyrequiredfields[i]);
}
}
copyrequiredfields = newarray;
var notexist=[1,2,5];
var copyrequiredfields=['a','b','c','d','e','f','g'];
//创建索引映射
var index_map={};
for(var i=0;i
创建一个新数组,迭代copyrequiredfields,当Note中的索引存在时,忽略它
例如:
var notexist = [1,2,5];
var copyrequiredfields = ['a','b','c','d','e','f','g'];
//create a index map
var index_map = {};
for(var i = 0; i < notexist.length; i++){
index_map[notexist[i]] = true;
}
//remove the elements
var newarray = [];
for(var i = 0; i < copyrequiredfields.length; i++){
if(!index_map[i]){
newarray.push(copyrequiredfields[i]);
}
}
copyrequiredfields = newarray;
var notexist=[1,2,5];
var copyrequiredfields=['a','b','c','d','e','f','g'];
//创建索引映射
var index_map={};
for(var i=0;i
您可以复制整个阵列,但不再需要的部分除外:
var tempCopy = [];
for (var i=0; i < copyrequiredfields.length; i++)
if(notexists.indexOf(i)==-1)
tempCopy.push(copyrequiredfields[i]);
copyrequiredfields = tempCopy;
var tempCopy=[];
对于(变量i=0;i
欢迎 您可以复制整个阵列,除了不再需要的部分:
var tempCopy = [];
for (var i=0; i < copyrequiredfields.length; i++)
if(notexists.indexOf(i)==-1)
tempCopy.push(copyrequiredfields[i]);
copyrequiredfields = tempCopy;
var tempCopy=[];
对于(变量i=0;i
欢迎 在JS中,数组的索引从
0
开始,而不是1
,所以在拼接之前只需从值中减去1即可。代码的其余部分很好
一个问题是,当您从数组中移除元素时,它之后的元素会向后移动1个位置。这将给您错误的输出。1 hack是计算移除元素的数量以计算移动
更好的解决方案是使用array.filter
阵列拼接
var notexists=[“1”、“5”、“8”]//值位于0,1,2位置。
var copyrequiredfields=[“a”、“b”、“c”、“d”、“e”、“f”、“g”、“h”、“i”]//值为“a”、“b”、“c”、“d”、“e”、“f”,。。。
var计数=0;
for(var i=0;i log(copyrequiredfields)
在JS中,数组的索引从0
开始,而不是1
,所以在拼接之前只需从值中减去1即可。代码的其余部分很好
一个问题是,当您从数组中移除元素时,它之后的元素会向后移动1个位置。这将给您错误的输出。1 hack是计算移除元素的数量以计算移动
更好的解决方案是使用array.filter
阵列拼接
var notexists=[“1”、“5”、“8”]//值位于0,1,2位置。
var copyrequiredfields=[“a”、“b”、“c”、“d”、“e”、“f”、“g”、“h”、“i”]//值为“a”、“b”、“c”、“d”、“e”、“f”,。。。
var计数=0;
for(var i=0;i log(copyrequiredfields)
可能有很多方法可以做到这一点。你能更详细地说明你的总体目标是什么吗?如果我们知道您为什么要这样做,就更容易提出解决方案。如果您是根据位置来计算结果,请使用slice
。当然,slice
不会像splice
那样影响初始数组。请注意,splice
需要计数,而不是位置。所以说第一个元素是指a
?@Rajesh是的,我指的是第一个元素element@chhaya_patel我用array.splice
和array.filter
添加了答案。希望有帮助!可能有很多方法可以做到这一点。你能更详细地说明你的总体目标是什么吗?如果我们知道您为什么要这样做,就更容易提出解决方案。如果您是根据位置来计算结果,请使用slice
。当然,slice
不会像splice
那样影响初始数组。请注意,splice
需要计数,而不是位置。所以说第一个元素是指a
?@Rajesh是的,我指的是第一个元素element@chhaya_patel我用array.splice
和array.filter
添加了答案。希望有帮助!