从字符串数组中删除第一个"word"



我有一个简单的字符串

var myArray= ["This is","a game","worth playing"];

我尝试了这个

console.log(myArray.map(function(f){ return f.substring(myArray.indexOf(" ") + 1);}));

当然哪个不起作用。

我的预期输出:

is game playing

我需要在纯JavaScript中,而不是jQuery。

我不确定为什么每个人都会用答案使情况复杂化...这是在错误的变量上使用 indexOf的简单情况...

这一行:

console.log(myArray.map(function(f){ return f.substring(myArray.indexOf(" ") + 1);}));

应该是:

console.log(myArray.map(function(f){ return f.substring(f.indexOf(" ") + 1);}));

您需要您要检查的当前字符串中的空间索引,但是您在原始数组上调用indexOf,当然,这当然返回-1,因为找不到该值。

此外,如果您希望输出与预期的输出语句完全一样,则需要在结果上使用.join()

var myArray= ['This is', 'a game', 'worth playing'];
console.log(myArray.map(function(f){ return f.substring(f.indexOf(' ') + 1);}).join(' '));

您必须在数组元素中查找" ",而不是在数组本身中查找。更改(myArray.indexOf(" ")f.indexOf(' ')

var myArray= ["This is","a game","worth playing"];
console.log(myArray.map(f => f.substring(f.indexOf(' ') + 1)).join(' '));

问题是您的.indexOf正在为您的数组中的每个空间返回-1。这是因为您 String.indexOf() Array.indexOf() 是两种不同的方法。

为了解决这个问题,如何简单地循环浏览数组中的每个元素,然后单独处理它们,将它们设置为等于第二个字?

var myArray = ["This is", "a game", "worth playing"];
for (var i = 0; i < myArray.length; i++) {
  myArray[i] = myArray[i].substr(myArray[i].indexOf(" ") + 1);
}
console.log(myArray);
console.log(myArray.join(' '));

您必须将用map处理的数组保存到变量中。

map((方法创建一个新数组,并带有调用的结果 在调用数组(源(中的每个元素上提供了功能。

var myArray= ["This is","a game","worth playing"];
myArray = myArray.map(function(str){ 
  return str.substring(str.indexOf(" ") + 1) 
});
// as array
console.log(myArray);
// as string
console.log(myArray.join(' '));

这与您的预期输出相匹配:

var myArray= ["This is","a game","worth playing"];
console.log(myArray.map((item) => { return item.replace(/w+s*/i, "") }).join(" "))

或无"加入"的这个:

var myArray= ["This is","a game","worth playing"];
console.log(myArray.map((item) => { return item.replace(/w+s*/i, "") }))

function removeFirstWordFromArrayOfWords(array) {
  return array.map(item => {
    return item.split(' ').slice(1);
  }).join(' ');
}

这会给你

> var myArray= ["This is","a game","worth playing"];
> removeFirstWordFromArrayOfWords(myArray)
is game playing

这可能不是最简单或最快的

最新更新