我可以替换或切片破折号数组

时间:2018-11-18 10:40:42

标签: javascript arrays regex loops replace

我可以替换数组中的破折号直到数组中字符串的结尾吗? 如果我有

Seq[Any]

我希望输出为数组

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

还是我们应该使用循环将它们切成薄片?

3 个答案:

答案 0 :(得分:1)

您可以使用map()split()

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

使用 for 循环:

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);

答案 1 :(得分:0)

使用.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);

答案 2 :(得分:0)

您可以使用正则表达式,将破折号替换为以下所有字符,直到字符串末尾。

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);