Warm tip: This article is reproduced from serverfault.com, please click

javascript-如何替换数组中的项目?

(javascript - How to replace item in array?)

发布于 2011-05-06 18:52:37

此数组的每个项目都是一些数字:

var items = Array(523,3452,334,31, ...5346);

如何用新物品代替某些物品?

例如,我们要替换34521010,我们将如何做呢?

Questioner
James
Viewed
0
Eli 2015-11-12 21:20:33
var index = items.indexOf(3452);

if (index !== -1) {
    items[index] = 1010;
}

另外,建议你不要使用构造方法初始化数组。相反,请使用文字语法:

var items = [523, 3452, 334, 31, 5346];

~如果你要使用简洁的JavaScript并希望缩短-1比较的话,也可以使用运算符

var index = items.indexOf(3452);

if (~index) {
    items[index] = 1010;
}

有时,我什至喜欢编写一个contains函数来抽象化此检查并使其更容易理解正在发生的事情。令人敬畏的是,这对数组和字符串都适用:

var contains = function (haystack, needle) {
    return !!~haystack.indexOf(needle);
};

// can be used like so now:
if (contains(items, 3452)) {
    // do something else...
}

从针对字符串的ES6 / ES2015开始,针对数组的ES2016提出,你可以更轻松地确定源是否包含另一个值:

if (haystack.includes(needle)) {
    // do your thing
}