我有這個目錄路徑陣列(字串):
let arr = [
'0',
'2',
'0\\0-1',
'2\\2-0',
'2\\2-0\\2-0-0',
'2\\2-0\\2-0-0\\2-0-0-0',
'2\\2-0\\2-0-0\\2-0-0-1'
]
目錄樹看起來像這樣(注意0-1,2-0-0-0, 和2-0-0-1是葉子):
0
|_ 0-1
2
|_ 2-0
|_ 2-0-0
|_ 2-0-0-0
|_ 2-0-0-1
從這個陣列中,我只想保留葉子的路徑。這意味著,我想洗掉所有元素,除了0\0-1,2\2-0\2-0-0\2-0-0-0和2\2-0\2-0-0\2-0-0-1。我的新陣列應該是這樣的:
newArr = [
'0\\0-1',
'2\\2-0\\2-0-0\\2-0-0-0',
`2\\2-0\\2-0-0\\2-0-0-1`
]
我怎樣才能在 JavaScript 中做到這一點?
uj5u.com熱心網友回復:
由 DexieTheSheep 推薦,使用 startsWith
let arr = [
'0',
'2',
'0\\0-1',
'2\\2-0',
'2\\2-0\\2-0-0',
'2\\2-0\\2-0-0\\2-0-0-0',
'2\\2-0\\2-0-0\\2-0-0-1'
];
const result = arr.filter(item => !arr.some(ex => ex.startsWith(item '\\')));
console.log(result);
uj5u.com熱心網友回復:
這也行
let arr = [
'0',
'2',
'0\\0-1',
'2\\2-0',
'2\\2-0\\2-0-0',
'2\\2-0\\2-0-0\\2-0-0-0',
'2\\2-0\\2-0-0\\2-0-0-1'
]
arr.forEach((item, itemIndex) => {
if (!arr.some((o, oIndex) => oIndex !== itemIndex && o.startsWith(item))) {
console.log(item);
}
});
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/361843.html
標籤:javascript
上一篇:將標頭發送給客戶端后無法設定標頭-請幫助我在我的代碼中理解這一點
下一篇:自動化的github問題機器人?
