开发者社区 问答 正文

如何用Javascript替换数组中的项目?

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

var items = Array(523,3452,334,31, ...5346); 如何用新的数组替换一些数字?

例如,我们要用1010代替3452,我们将如何做?

展开
收起
保持可爱mmm 2020-01-16 14:25:06 522 分享 版权
1 条回答
写回答
取消 提交回答
  • 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 }

    问题来源于stack overflow

    2020-01-16 14:25:21
    赞同 展开评论