Как изменить элементы массива? - PullRequest
0 голосов
/ 27 июня 2018

У меня есть 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 голосов
/ 27 июня 2018

Всякий раз, когда вы хотите сравнить строки, всегда сохраняется возможность использовать

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

.toUpperCase() преобразует строку в верхний регистр, и в конце вы получите обе строки в верхнем или нижнем регистре, если вы используете .toLowerCase()

0 голосов
/ 27 июня 2018

Это связано с тем, что сравнение строк выполняется с учетом регистра символов js. Попробуйте следующее

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

Если вы хотите проверить равенство значений строки, лучше всегда конвертировать оба символа строки в один и тот же регистр. Как и в этом примере, обе строки преобразуются в строку строчных символов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...