如何修改数组元素?

时间:2018-06-27 08:16:48

标签: javascript ecmascript-6

我有labels,它是一个数组。我想将Catch & Bowled替换为Caught & Bowled,将run替换为Run Out

我尝试的是遍历数组并替换该特定字符串。

代码:

 let labels = Object.keys(wickets); <--- wickets array of objects of type let

    console.log(labels);

   for(var i=0;i<labels.length;i++){
        if(labels[i] === 'catch & bowled'){
          labels[i] = 'Caught & Bowled';
        }else if(labels[i] === 'run'){
          labels[i] = 'Run Out'
        }
    }

当我再次console.log(labels)时,为什么不修改它们?

屏幕截图:

enter image description here

2 个答案:

答案 0 :(得分:3)

因为字符串比较是js区分大小写,请尝试以下

if(labels[i].toLowerCase() === "catch & bowled".toLowerCase())

如果要检查字符串值的相等性,总比将两个字符串字符都转换为相同大小写要好。像本例一样,这两个字符串都转换为小写字母字符串。

答案 1 :(得分:3)

只要您想在字符串之间进行比较,总是可以节省使用

labels[i].toUpperCase() == 'catch & bowled'.toUpperCase()

.toUpperCase()将字符串转换为大写,如果使用.toLowerCase()

,最后两个字符串都以大写或小写