Могу ли я заменить или нарезать тире в массиве - PullRequest
0 голосов
/ 18 ноября 2018

Могу ли я заменить тире в массиве до конца строки в массиве?Если у меня есть

["Doni-night", "Mike-night" ]

И я хочу, чтобы выходные данные были массивом

["Doni", "Mike"]

Или мы должны использовать цикл для их нарезки?

Ответы [ 3 ]

0 голосов
/ 18 ноября 2018

Вы можете использовать map() и split():

var arr = ["Doni-night", "Mike-night" ];
arr = arr.map(n => n.split('-')[0]);
console.log(arr);

Использование для loop:

var arr = ["Doni-night", "Mike-night" ];
for (i = 0; i < arr.length; i++) {
    arr[i] = arr[i].split('-')[0];
}
console.log(arr);

Использование forEach():

var arr = ["Doni-night", "Mike-night" ];
arr.forEach((n,i) => {
  arr[i] = arr[i].split('-')[0];
});
console.log(arr);
0 голосов
/ 18 ноября 2018

Вы можете использовать регулярное выражение, которое заменяет тире все последующие символы до конца строки.

var array = ["Doni-night", "Mike-night"];

array = array.map(s => s.replace(/-.*$/, ''));

console.log(array);

С петлей for и индексом.

var array = ["Doni-night", "Mike-night"],
    i;

for (i = 0; i < array.length; i++) {
    array[i] = array[i].replace(/-.*$/, '');
}

console.log(array);
0 голосов
/ 18 ноября 2018

Используйте .replace() в .map(), чтобы удалить дополнительную часть строки из всех элементов.

var arr = ["Doni-night", "Mike-night" ];
var newArr = arr.map(function(val){
  return val.replace(/-.*/, '');
});
console.log(newArr);

код в ES6

var arr = ["Doni-night", "Mike-night" ];
console.log(arr.map(val => val.replace(/-.*/, '')));

Также вы можете использовать for цикл вместо .map(), если хотите.

var arr = ["Doni-night", "Mike-night" ];
for (var i=0; i<arr.length; i++)
  arr[i] = arr[i].replace(/-.*/, '');
console.log(arr);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...