如何从数组中删除一个特定值? 类似 :
array.remove(value);
制约:我必须使用核心 JavaScript 。 框架不允许 。
如何从数组中删除一个特定值? 类似 :
array.remove(value);
制约:我必须使用核心 JavaScript 。 框架不允许 。
当前回答
删除上次的元素
arrName.pop();
删除第一个元素
arrName.shift();
从中间删除
arrName.splice(starting index, number of element you wnt to delete);
Example: arrName.splice(1, 1);
删除最后一个元素
arrName.splice(-1);
使用数组索引编号删除
delete arrName[1];
其他回答
我对基底 JavaScript 阵列进行了相当高效的扩展:
Array.prototype.drop = function(k) {
var valueIndex = this.indexOf(k);
while(valueIndex > -1) {
this.removeAt(valueIndex);
valueIndex = this.indexOf(k);
}
};
使用 jQuery. grep () :
var y = [1, 2, 3, 9, 4] var 删除项目 = 9; y = jQuery.grep(y, 函数(价值) {返回值 = demotephle; }; 控制台. log(y) <Src=" https://ajax.googleapis.com/ajax/libs/jquery/1.12.2/jquery.min.js"\\/pict>
于2016年10月16日编辑
如果浏览器不支持 JavaScript 标准函数, 请按标准 JavaScript 函数执行, 如果您的浏览器不支持这些函数 - 使用多填
在此代码示例中, 我使用数组. filter (...) 函数从数组中删除不想要的项目 。 此函数不会改变原始数组, 创建一个新的数组 。 如果您的浏览器不支持此函数( 例如, 版本 9 之前的 Internet Explorer 或版本 1. 5 之前的 Firefox) , 请考虑以 Core- js 组合填充 。
删除项目( ECMA-262 版5 代码 AKA 旧风格 JavaScript)
var value = 3
var arr = [1, 2, 3, 4, 5, 3]
arr = arr.filter(function(item) {
return item !== value
})
console.log(arr)
// [ 1, 2, 4, 5 ]
删除项目( ECMAScript 6 代码)
let value = 3
let arr = [1, 2, 3, 4, 5, 3]
arr = arr.filter(item => item !== value)
console.log(arr)
// [ 1, 2, 4, 5 ]
IMPORTANT ECMAScript 6 () 箭头函数语法在互联网探索器、 45 版本前的Chrome、 22 版本前的Firefox 和 10 版本前的Safari 中完全不支持。 要在旧浏览器中使用 ECMAScript 6 语法, 您可以使用 BabelJS 。
删除多个项目( ECMAScript 7 代码)
此方法的另一个好处是,您可以删除多个项
let forDeletion = [2, 3, 5]
let arr = [1, 2, 3, 4, 5, 3]
arr = arr.filter(item => !forDeletion.includes(item))
// !!! Read below about array.includes(...) support !!!
console.log(arr)
// [ 1, 4 ]
IMPORANT 矩阵。 包含(...) 函数在 Internet Explorer 中根本不支持, Chrome 版本47, Firefox 版本43, Safari 版本9, 版本14 之前的边缘中根本不支持, 但是您可以使用核心js 进行多种填充 。
删除多个项目( 未来, 也许)
如果这个“ 丁字语法” 提案被接受, 你就可以做到:
// array-lib.js
export function remove(...forDeletion) {
return this.filter(item => !forDeletion.includes(item))
}
// main.js
import { remove } from './array-lib.js'
let arr = [1, 2, 3, 4, 5, 3]
// :: This-Binding Syntax Proposal
// using "remove" function as "virtual method"
// without extending Array.prototype
arr = arr::remove(2, 3, 5)
console.log(arr)
// [ 1, 4 ]
尝试自己在 BabelJS :)
参考参考参考参考参考文献
包括职能构成
var arr =[1,2,3,4,5];
arr.splice(0,1)
console.log(arr)
产出[2、3、4、5];
您永远不应该根据功能编程模式对阵列进行变换。 您可以创建一个新的阵列, 而不引用您想要更改的数据, 使用 ECMAScript 6 方法过滤器 ;
var myArray = [1, 2, 3, 4, 5, 6];
如果您想从数组中删除 5 个, 您可以简单地这样做 :
myArray = myArray.filter(value => value !== 5);
这将给您一个没有您想要删除的值的新数组。 因此结果将是 :
[1, 2, 3, 4, 6]; // 5 has been removed from this array
欲了解更多信息,请阅读Array.filter上的MDN文件。