我從一個帶有隨機文本的 json 檔案匯入,我必須獲取所有第一個字母是元音的單詞。
let texts = MyData.map(text => {
return text.tags.map(word => {
return word.split(' ').map( char => {
if(char[0].match(/[aeiou]/i)) {
return char
}
})
});
});
console.log(texts); [ example : 'ea', 'in',
undefined, 'in',
'occaecat', undefined,
undefined ]
那么如何使回傳值沒有未定義的值并且在同一個映射函式中?
任何想知道的人的 MyData 示例資料:
[
{
"_id": "62bab08c83586a7bb36b46de",
"index": 0,
"tags": [
"ea in minim in occaecat pariatur cillum",
"ut exercitation minim officia enim cillum anim",
"ad occaecat labore velit cupidatat enim proident",
"consequat culpa qui occaecat sit sunt voluptate",
"eiusmod excepteur adipisicing tempor ut Lorem do",
"quis velit aliquip ad excepteur deserunt do",
"dolor fugiat ea sit adipisicing labore in"
]
},
{
"_id": "62bab08c10365bb88f81cdf5",
"index": 1,
"tags": [
"non laborum cillum commodo velit culpa commodo",
"nisi aute magna laborum ut cillum velit",
"in veniam ullamco officia aute deserunt ex",
"dolor ullamco aliqua laborum ullamco officia mollit",
"fugiat aliquip nostrud deserunt fugiat veniam veniam",
"culpa eu irure ullamco ea deserunt ullamco",
"labore quis quis enim magna duis cupidatat"
]
},
{
"_id": "62bab08cf0d1796087e71a27",
"index": 2,
"tags": [
"esse labore aliqua sit voluptate mollit deserunt",
"sint nulla minim veniam do nulla duis",
"culpa enim laborum do magna voluptate amet",
"commodo elit ad magna veniam proident duis",
"aliquip ex dolore officia laboris sit qui",
"esse anim velit ut quis do magna",
"do culpa eu sint occaecat voluptate cillum"
]
},
{
"_id": "62bab08cbb8247421f46d095",
"index": 3,
"tags": [
"ea aliqua cupidatat aute ipsum qui officia",
"enim ad pariatur ex tempor pariatur irure",
"in mollit aute sit occaecat non cupidatat",
"adipisicing sint non elit nisi commodo sunt",
"tempor veniam culpa exercitation in cillum pariatur",
"non quis dolor in ea ut duis",
"excepteur Lorem dolor qui tempor dolore reprehenderit"
]
},
{
"_id": "62bab08c642b523e6cc9ecd1",
"index": 4,
"tags": [
"cillum nulla ipsum pariatur nisi ex in",
"proident tempor aliquip id commodo sunt ut",
"tempor qui ex laborum anim nisi excepteur",
"consequat ea laborum cillum mollit enim consectetur",
"nisi ut sint sunt non veniam ullamco",
"proident exercitation culpa dolor duis enim qui",
"commodo aliquip ipsum velit elit in nulla"
]
},
{
"_id": "62bab08c5702bc78e0e082db",
"index": 5,
"tags": [
"deserunt sit labore veniam eiusmod tempor eu",
"ut dolore est pariatur eiusmod cillum eu",
"ex commodo voluptate Lorem incididunt dolor veniam",
"labore ullamco quis et qui fugiat pariatur",
"in duis ut tempor velit excepteur ut",
"aute esse velit nisi et reprehenderit ea",
"consectetur do aute et dolor ex do"
]
}
]
uj5u.com熱心網友回復:
我認為您需要filter在最里面的地圖功能中使用
let texts = MyData.map(text => {
return text.tags.map(word => {
return word.split(' ').filter( char => {
if(char[0].match(/[aeiou]/i)) {
return char
}
})
});
});
uj5u.com熱心網友回復:
您可以過濾掉使用 map 后未定義的那些,或者您可以使用 reduce 來執行此操作
return word.split(' ').map( char => {
if(char[0].match(/[aeiou]/i)) {
return char
}
}).filter(char => char !== undefined)
或者
return word.split(' ').reduce((acc, char) => {
if(char[0].match(/[aeiou]/i)) {
return acc.concat(char)
}
return acc
}, [])
uj5u.com熱心網友回復:
您可以使用flatMap兩次,一次將所有專案展平為它們的tags,然后再次將所有標簽展平為一組單詞。那么它只是一個filter
const result = example.flatMap(x => x.tags)
.flatMap(x => x.split(" "))
.filter(x => x[0].match(/[aeiou]/i))
下面的作業代碼與您的輸入。
const example=[{"_id":"62bab08c83586a7bb36b46de",index:0,tags:["ea in minim in occaecat pariatur cillum","ut exercitation minim officia enim cillum anim","ad occaecat labore velit cupidatat enim proident","consequat culpa qui occaecat sit sunt voluptate","eiusmod excepteur adipisicing tempor ut Lorem do","quis velit aliquip ad excepteur deserunt do","dolor fugiat ea sit adipisicing labore in"]},{"_id":"62bab08c10365bb88f81cdf5",index:1,tags:["non laborum cillum commodo velit culpa commodo","nisi aute magna laborum ut cillum velit","in veniam ullamco officia aute deserunt ex","dolor ullamco aliqua laborum ullamco officia mollit","fugiat aliquip nostrud deserunt fugiat veniam veniam","culpa eu irure ullamco ea deserunt ullamco","labore quis quis enim magna duis cupidatat"]},{"_id":"62bab08cf0d1796087e71a27",index:2,tags:["esse labore aliqua sit voluptate mollit deserunt","sint nulla minim veniam do nulla duis","culpa enim laborum do magna voluptate amet","commodo elit ad magna veniam proident duis","aliquip ex dolore officia laboris sit qui","esse anim velit ut quis do magna","do culpa eu sint occaecat voluptate cillum"]},{"_id":"62bab08cbb8247421f46d095",index:3,tags:["ea aliqua cupidatat aute ipsum qui officia","enim ad pariatur ex tempor pariatur irure","in mollit aute sit occaecat non cupidatat","adipisicing sint non elit nisi commodo sunt","tempor veniam culpa exercitation in cillum pariatur","non quis dolor in ea ut duis","excepteur Lorem dolor qui tempor dolore reprehenderit"]},{"_id":"62bab08c642b523e6cc9ecd1",index:4,tags:["cillum nulla ipsum pariatur nisi ex in","proident tempor aliquip id commodo sunt ut","tempor qui ex laborum anim nisi excepteur","consequat ea laborum cillum mollit enim consectetur","nisi ut sint sunt non veniam ullamco","proident exercitation culpa dolor duis enim qui","commodo aliquip ipsum velit elit in nulla"]},{"_id":"62bab08c5702bc78e0e082db",index:5,tags:["deserunt sit labore veniam eiusmod tempor eu","ut dolore est pariatur eiusmod cillum eu","ex commodo voluptate Lorem incididunt dolor veniam","labore ullamco quis et qui fugiat pariatur","in duis ut tempor velit excepteur ut","aute esse velit nisi et reprehenderit ea","consectetur do aute et dolor ex do"]}]
const result = example.flatMap(x => x.tags)
.flatMap(x => x.split(" "))
.filter(x => x[0].match(/[aeiou]/i));
console.log(result);
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/496612.html
標籤:javascript
上一篇:根據客戶端目錄路徑在dockercompose中創建卷
下一篇:導航欄內容在翻譯后失去所有樣式
