我有以下情況要處理。
let data = [
["ALISHA", "SUICA", "PASMO"] 。
["HARMONY"] 。
["OCTOPUS"]
]
let data1=[
["ALISHA", ] 。
["HARMONY"] 。
["OCTOPUS", "SUICA", "PASMO" ].
]
對于上述兩個資料,我希望其結果是這樣的。
let result=[
["ALISHA"/span>]。
["HARMONY"]。
["OCTOPUS"]。
["SUICA"]。
["PASMO"]
]
誰能讓我知道如何實作這一點。我嘗試了以下方法,但沒有成功
let result = [] 。
for (let i = 0; i < data.length; i ) {
let split = data[i].split(","); //只是分割一次。
result.push(split[0]); //在逗號之前。
}
uj5u.com熱心網友回復:
使用Array.reduce提取所有元素,然后通過Array.map轉換為[string]。
const data = [
["ALISHA"/span>]。
["HARMONY"]。
["OCTOPUS", "SUICA", "PASMO"].
]
console.log(
data.reduce((pre, cur) =>/span> [... pre, ...cur], []).map(span class="hljs-params">item => [item])
// data.reduce((pre, cur) => pre.concat(...cur), []).map(item => [item]) // 方法不同但邏輯相同(用Array.concat代替 spread operator)
)
<iframe name="sif1" sandbox="allow-forms allow-modals allow-scripts" class="snippet-box-edit snippet-box-result" frameborder="0"></iframe>
uj5u.com熱心網友回復:
。const data = [["ALISHA"/span>]。["HARMONY"/span>], ["OCTOPUS"/span>, "SUICA"/span>, "PASMO"/span>]]。
const result = data.flat().map((a) => /span> [a]) 。
console.log(result);
<iframe name="sif2" sandbox="allow-forms allow-modals allow-scripts" class="snippet-box-edit snippet-box-result" frameborder="0"></iframe>
uj5u.com熱心網友回復:
我們將在主陣列上使用forEach方法,在forEach里面我們將使用if條件,如果是陣列且長度超過1,將添加另一個forEach方法,并將子陣列推送到主陣列,然后洗掉子陣列 看起來像這樣
>。let data = [
["ALISHA"/span>]。
["HARMONY"]。
["OCTOPUS"/span>, "SUICA"/span>, "PASMO"/span>]
]
data.forEach((cur, index) =>/span> {
if (Array.isArray(cur) && cur.length > 1) {
cur.forEach(span class="hljs-params">cur => data.push([cur]))
data.splice(index, 1)。
}
})
console.log(data)
<iframe name="sif3" sandbox="allow-forms allow-modals allow-scripts" class="snippet-box-edit snippet-box-result" frameborder="0"></iframe>
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/312774.html
標籤:
