我有一个简单的字符串数组
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。
答案 0 :(得分:2)
您必须在数组元素中查找" "
,而不是在数组本身中查找。更改(myArray.indexOf(" ")
至f.indexOf(' ')
。
var myArray= ["This is","a game","worth playing"];
console.log(myArray.map(f => f.substring(f.indexOf(' ') + 1)).join(' '));

答案 1 :(得分:2)
我不确定为什么每个人都会因为他们的答案而使情况变得复杂......这是一个在错误变量上使用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
,因为找不到该值。 / p>
此外,如果您希望输出与预期的输出语句完全相同,则需要对结果使用.join()
:
var myArray= ['This is', 'a game', 'worth playing'];
console.log(myArray.map(function(f){ return f.substring(f.indexOf(' ') + 1);}).join(' '));

答案 2 :(得分:0)
问题是,您的.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(' '));
答案 3 :(得分:0)
这个匹配您的预期输出:
var myArray= ["This is","a game","worth playing"];
console.log(myArray.map((item) => { return item.replace(/\w+\s*/i, "") }).join(" "))
&#13;
或者这个没有&#34;加入&#34;:
var myArray= ["This is","a game","worth playing"];
console.log(myArray.map((item) => { return item.replace(/\w+\s*/i, "") }))
&#13;
答案 4 :(得分:0)
您必须将使用map
处理的数组保存到变量中。
map()方法创建一个新数组,其中包含调用a的结果 为调用数组中的每个元素提供了函数(source)。
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(' '));
答案 5 :(得分:-1)
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
这可能不是最简单或最快的