我想分离并将一个数组的所有单词推送到另一个数组中。获取数组中的所有单词
旧阵列:
["black cat", "white dog", "grey mouse"]
预计数组:
["black"],["cat"],["white"],["dog"],["grey"],["mouse"]
我的代码我还是让我的3列由逗号分隔:
我想分离并将一个数组的所有单词推送到另一个数组中。获取数组中的所有单词
旧阵列:
["black cat", "white dog", "grey mouse"]
预计数组:
["black"],["cat"],["white"],["dog"],["grey"],["mouse"]
我的代码我还是让我的3列由逗号分隔:
这是因为该方法split
返回数组的话分裂与空间。解决方案是遍历这个新的数组,而不是插入(推)在数组中。
var arr = ["black cat", "white dog", "grey mouse"];
var arr_new = [];
for (i = 0; i < arr.length; i++) {
curr_val = arr[i].split(" ");
for(j=0; j<curr_val.length;j++){
arr_new.push(curr_val[j]);
}
}
的jsfiddle:https://jsfiddle.net/6hLazr5w/1/
var newArray=[],
oldArray = ["black cat", "white dog", "grey mouse"];
for(item in oldArray) {
tmpArray = oldArray[item].split(' ');
for(tmp in tmpArray) {
newArray.push(tmpArray[tmp]);
}
}
这是我会怎么做:
var oldArr = ["black cat", "white dog", "grey mouse"];
var newArr = oldArr
// this will turn each string into an Array of Arrays, like this:
// [["black", "cat"], ["white", "dog"], ["grey", "mouse"]]
.map(function(item) {
return item.split(" ");
})
// then, flatten this Array of Arrays into a single-level Array.
// see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/Reduce#Flatten_an_array_of_arrays
.reduce(function(a, b) {
return a.concat(b);
}, []);
document.writeln(JSON.stringify(newArr))
这里与减少&替代方法的选择,
var a = ["black cat", "white dog", "grey mouse"]
var re = a.reduce((acc,x)=>{
x.replace(/[a-zA-z]+/g,function(m){
acc.push([m])
});
return acc;
},[])
console.log(re)
你想'[ “黑”],[ “猫”],[ “白”] ,[“狗”],[“灰色”],[“鼠标”]]或[[黑色],“猫”,“白色”,“狗”,“灰色”,“鼠标”]'? –