我想分離並將一個數組的所有單詞推送到另一個數組中。獲取數組中的所有單詞
舊陣列:
["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)
你想'[ 「黑」],[ 「貓」],[ 「白」] ,[「狗」],[「灰色」],[「鼠標」]]或[[黑色],「貓」,「白色」,「狗」,「灰色」,「鼠標」]'? –