如何从数组中删除一个特定值? 类似 :
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]
提示 : 请使用箭头函数进行过滤回击, 除非您会得到空数组 。
其他回答
Array.prototype.remove = function(x) {
var y=this.slice(x+1);
var z=[];
for(i=0;i<=x-1;i++) {
z[z.length] = this[i];
}
for(i=0;i<y.length;i++){
z[z.length]=y[i];
}
return z;
}
从数组中删除一个特定元素, 可以在过滤器选项的一行内完成, 它得到所有浏览器的支持 : https:// caniuse. com/ #search=filter% 20arary
function removeValueFromArray(array, value) {
return array.filter(e => e != value)
}
我在这里测试了此函数 : https://bit.dev/joshk/jotils/remove-value- from-array/~code#test.ts
我张贴我的代码,删除一个阵列元素, 并缩短阵列长度 。
function removeElement(idx, arr) {
// Check the index value
if (idx < 0 || idx >= arr.length) {
return;
}
// Shift the elements
for (var i = idx; i > 0; --i) {
arr[i] = arr[i - 1];
}
// Remove the first element in array
arr.shift();
}
var arr =[1,2,3,4,5];
arr.splice(0,1)
console.log(arr)
产出[2、3、4、5];
一个非常天真的执行情况如下:
Array. prototype. remove = 函数( data) { const dataIdx = this. indexof( data) if (dataIdx { { { 0) { this.spice( dataIdx, 1) { 返回此. 长度;} } 允许 a = [1, 2,3] ; / / 这将将 Arr a 改为 [1, 3] a. remove(2) ;
我从函数返回数组的长度以遵守其他方法, 如 Array. prototype. push () 。