如何从数组中删除一个特定值? 类似 :
array.remove(value);
制约:我必须使用核心 JavaScript 。 框架不允许 。
如何从数组中删除一个特定值? 类似 :
array.remove(value);
制约:我必须使用核心 JavaScript 。 框架不允许 。
当前回答
我想根据ECMAScript 6. 假设你的阵列如下:
let arr = [1,2,3,4];
如果您想要删除像 2 这样的特殊索引, 请写下以下代码 :
arr.splice(2, 1); //=> arr became [1,2,4]
但如果您想要删除一个特殊项目, 如 3 和您不知道它的索引, 做如下 :
arr = arr.filter(e => e !== 3); //=> arr became [1,2,4]
提示 : 请使用箭头函数进行过滤回击, 除非您会得到空数组 。
其他回答
如果您想要 [.].remove(el) 类似语法的语法, 和其他编程语言一样, 那么您可以添加此代码 :
// Add remove method to Array prototype
Array.prototype.remove = function(value, count=this.length) {
while(count > 0 && this.includes(value)) {
this.splice(this.indexOf(value), 1);
count--;
}
return this;
}
用法
// Original array
const arr = [1,2,2,3,2,5,6,7];
// Remove all 2s from array
arr.remove(2); // [1,3,5,6,7]
// Remove one 2 from beginning of array
arr.remove(2, 1); // [1,2,3,2,5,6,7]
// Remove two 2s from beginning of array
arr.remove(2, 2); // [1,3,2,5,6,7]
您可以根据您的需求操控该方法 。
尝试使用删除运算符删除数组元素
例如:
const arr = [10, 20, 30, 40, 50, 60];
delete arr[2]; // It will Delete element present at index 2
console.log( arr ); // [10, 20, undefined , 40, 50, 60]
注意: 使用删除运算符将会在数组中留下空空空/ 空洞。 它不会提醒数组的长度。 要在元素被删除时更改数组的长度, 请使用复数法 。
希望这能解决你所有的问题
您可以简单地将删除函数添加到数组原体Type
类似的东西 :
Array.prototype.remove = function(value) {
return this.filter(item => item !== value)
}
Array. prototype. remove = 函数( 值) { 返回此功能 。 filter (项目 项 ! === value) } 让阵列 = [10, 15,20] 结果 = 数组. remove(10) 控制台.log (结果) (结果)
您可以在 JavaScript 以多种方式完成此任务
如果您知道该值的索引 : 您可以在此情况下使用 spolice var arr = [1, 2, 3,4] / / / / 假设我们有该索引, 来源于某些 API let index = 2; // spolice 是一种破坏性的方法, 并修改原始数组 arr. spice (2, 1) 。 如果您没有该索引, 并且只有该值 : 您可以在此情况下使用过滤器 / / let's remove '2', 例如 arr = arr. filter (( 值) 返回值 $ ( = 2); }
由你决定如何行动。
一种办法是使用复数法,从数组中删除项目:
let array = [1, 2, 3]
array.splice(1, 1);
console.log(array)
// return [1, 3]
但要确保您通过第二个参数,否则最终会删除索引后的全部数组。
第二个办法是使用过滤法,其好处在于它不可改变,这意味着你的主阵列不会被操纵:
const array = [1, 2, 3];
const newArray = array.filter(item => item !== 2)
console.log(newArray)
// return [1, 3]