我收到一個檔案路徑字串,如下所示:
let sampletext="Home/Student/Hello.txt";
我想動態地將其轉換為以下結構。我應該如何最好地解決這個問題?
let idarray=[
{
'id':'Home',
'parent': '',
},
{
'id':'Student',
'parent': 'Home',
},
{
'id':'Hello.txt',
'parent': 'Student',
}
]
uj5u.com熱心網友回復:
split
on/
然后從那里構建它 - 你可以簡潔地做到這一點map
:
let sampletext="Home/Student/Hello.txt";
let componentsArr = sampletext.split("/");
let idarray = componentsArr.map(( id, i ) => ({
id,
parent: componentsArr[i - 1] || ""
}));
console.log(idarray);
這非常簡單——只需將id
屬性設定為您當前正在迭代的任何值,然后如果在它之前存在一個值(即,如果這不是第一個/根項),則將其parent
值設定為前一個值;否則,它是一個空字串。您可以洗掉componentsArr
并參考拆分n
時間,但我認為這有點低效。
uj5u.com熱心網友回復:
干得好:
let sampletext="Home/Student/Hello.txt"
let textarr = sampletext.split('/');
let idarray = textarr.map((x, i) => {
if(i === 0)
return { id: x, parent: '' };
return { id: x, parent: textarr[i - 1] };
});
console.log(idarray);
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/491826.html
標籤:javascript 数组 目的 小路