按索引删除数组元素
Removing array elements by index
arr1 是一个整数数组。arr2 包含我希望从 arr1 中删除的元素索引列表。
所以我的JS函数:
function deletion()
{
var arr3=[];
var arr1= [2,3,4,5,6,7,8,11,22];
console.log(arr1);
var arr2 = [4,0,1];
for(var i=0;i<arr2.length;i++)
{
arr3.push(arr1[arr2[i]]);
}
for(var j=0;j<arr3.length;j++)
{
arr1.splice(arr1.indexOf(arr3[j]),1);
}
console.log(arr1,"array1");
}
这工作正常,但现在的要求是:我需要使用更有效的方式。不应该使用 arr3,即我不想使用另一个新数组并将元素推入其中,然后循环遍历它。我希望在不使用新数组的情况下实现这一点。
有没有办法做到这一点??并且不应该使用任何库,这必须仅通过 Java 脚本完成。
如果问题很荒谬,请道歉。这是我必须完成的作业。
var arr1= [2,3,4,5,6,7,8,11,22];
var arr2 = [4,0,1];
arr2 = arr2.sort().reverse();
for(var i = 0; i < arr2.length; i++){
arr1.splice(arr2[i],1);
}
console.log(arr1);
function deletion()
{
var arr1= [2,3,4,5,6,7,8,11,22];
console.log(arr1);
var arr2 = [4,0,1];
arr2 .sort(function(a,b){return a>b?-1:1});
for(var i=0;i<arr2.length;i++)
{
arr1.splice(arr2[i],1);
}
console.log(arr1,"array1");
}
您可以使用
Array.splice
来达到这种效果,由于双循环的复杂性,它可能不适合这种形式,但你明白了......
var arr1= [2,1,3,4,5,6,7,8,11,22],
arr2 = [4,0,1];
for (var i in arr1) {
for (var j in arr2) {
if (arr1[i] == arr2[j])
arr1.splice(i, 1);
}
}
相关文章:
- 从组件状态的数组中删除元素
- Mongoose-在更新中删除数组元素
- 从数组中删除元素的最佳方法是:javascript/jquery
- 一些元素没有从数组中删除
- 从角度数组中删除元素
- 删除仅空格数组元素
- 正在从元素可能不同的数组中删除重复的元素
- 使用 V8 从密集数组中删除元素的最佳方法是什么
- 根据成员属性从数组中删除元素
- 如何从数组中删除元素
- 从数组中删除元素,然后保留其状态以备将来使用,而不使用全局变量
- 删除数组元素并将它们添加回原来的位置
- AngularJS/JavaScript从Localstorage数组中删除特定元素
- 正在从ReactJS数组中删除Stateful元素
- 删除基于另一个数组的数组元素
- 如何从数组中删除元素
- 取消选择下拉项时从数组中删除元素
- 如果一个键匹配,如何删除数组元素
- 从AngularJS中的数组中删除元素时出错
- 通过与猫鼬中的不同数组匹配,从嵌入数组中删除元素