分割字符串,然后压入数组

String splitting then pushing to array

本文关键字:数组 然后 字符串 分割      更新时间:2023-09-26

我正试图将我的字符串从数组拆分为单独的单词,然后将它们推送到一个新的数组中,以将它们从该数组中作为单独的单词打印出来。我怎么做呢?到目前为止,我所拥有的在下面,但我认为我在函数中以错误的顺序调用了我的方法。

var myArray = ["John Doe", "johnDoe"];
var cutName = function(x) {
    var cutArray = [];
    cutArray.push(x.split());
    return cutArray;
};
print cutName(myArray[0]);

我如何改进我的代码?

我想你要做的是根据空格分隔数组中的元素,而你忘记将" "参数添加到split()

var myArray = ["John Doe", "johnDoe"];
var cutName = function(x) {
  var cutArray = x.split(" "); //place demimeter here
  return cutArray;
};
var arr = cutName(myArray[0]);
for (var i = 0; i < arr.length; i++) {
  console.log(arr[i]);
  alert(arr[i]);
}

这将把您的原始参数拆分为cutName, myArray "John Doe"中的第一个元素,并将其转换为数组,元素是由单个空格分隔的任何东西。然后循环遍历并打印出新数组中的每个元素。

输入:myArray[0] -> "John Doe"

变为:["John", "Doe"]

输出:第一行:John

第二行:Doe

我不确定你在找什么,但这可能对你有用:

var separateWords = myArray.map(function(word) {
    return word.split(' '); // note the empty space
});
// output [ [ 'John', 'Doe' ], [ 'johnDoe' ] ]

同样,要把它放在一个数组中:

separateWords = separateWords.reduce(function(a,b) { 
  return a.concat(b); 
})
// output [ 'John', 'Doe', 'johnDoe' ]

假设您想要拆分数组中的每个元素,并将所有拆分的部分合并为一个更大的数组,那么这对您有用吗?

var myArray = ["John Doe", "johnDoe"];
var newArray = (myArray.map(function(x) {return x.split(' ')})).join().split(",");
console.log(newArray);

[ 'John', 'Doe', 'johnDoe' ]

split函数需要一个分隔符,显示应该用哪个字符分割字符串。所以你的代码应该是:

var myArray = ["John Doe", "johnDoe"];
var cutName = function(x) {
    var cutArray = [];
    cutArray.push(x.split(""));
    return cutArray;
};
document.body.innerHTML=cutName(myArray[0]);

你最终返回一个数组中的一个数组,这可能不是你所期望的。

x.split() 的结果已经是一个数组(例如['John', 'Doe']),然后你把它推到cutArray,以[['John', 'Doe']]结束,这可能是你困惑的原因。注意:将separator参数省略为split()将返回一个数组,其中唯一的元素是原始字符串——这可能会导致意想不到的结果)。

您的cutName函数是简单调用x.split(' ')的很长一段路。您的代码可以缩短为:

console.log(myArray[0].split(' '));

如果没有显示预期的输出,我不确定您还想让代码做什么。

相关文章: