如何从数组中删除一个特定值? 类似 :

array.remove(value);

制约:我必须使用核心 JavaScript 。 框架不允许 。


当前回答

您可以使用 Set 代替并使用删除函数 :

const s = Set;
s.add('hello');
s.add('goodbye');
s.delete('hello');

其他回答

使用不同种类数组的过滤器

    **simple array**
    const arr = ['1','2','3'];
    const updatedArr = arr.filter(e => e !== '3');
    console.warn(updatedArr);

    **array of object**
    const newArr = [{id:1,name:'a'},{id:2,name:'b'},{id:3,name:'c'}]
    const updatedNewArr = newArr.filter(e => e.id !== 3);
    console.warn(updatedNewArr);

    **array of object with different parameter name**
    const newArr = [{SINGLE_MDMC:{id:1,cout:10}},{BULK_MDMC:{id:1,cout:15}},{WPS_MDMC:{id:2,cout:10}},]
    const newArray = newArr.filter((item) => !Object.keys(item).includes('SINGLE_MDMC'));
    console.log(newArray)

一位朋友在互联网探索者8号上出了问题, 并向我展示了他的所作所为。 我告诉他这是错的, 他告诉我他得到了答案。 当前的顶尖答案不会在所有浏览器中有效( 比如互联网探索者8号) , 并且它只会消除项目的首次出现。

从数组中删除所有实例

function removeAllInstances(arr, item) {
   for (var i = arr.length; i--;) {
     if (arr[i] === item) arr.splice(i, 1);
   }
}

它会从数组向后循环( 因为随着项目被删除, 指数和长度会变化) , 如果找到的话, 它会删除它。 它会在所有浏览器中发挥作用 。

let array = [5,5,4,4,2,3,4]    
let newArray = array.join(',').replace('5','').split(',')

如果您想要删除一个当前项目, 此示例将有效 。

var 数组 = [2, 5, 9]; var res = 数组.spliice( array. findindIndex( x x x = = = 5) 1; 控制台. log( res) (sres)

使用 Array. findindindex, 我们可以减少代码行数。

开发者.mozilla.org

我想根据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]

提示 : 请使用箭头函数进行过滤回击, 除非您会得到空数组 。