2 回答

TA貢獻(xiàn)1884條經(jīng)驗 獲得超4個贊
如果您事先制作了一個屬性數(shù)組,則可以使用Object.fromEntries將每個拆分項映射到要創(chuàng)建的對象中的一個條目:
const tsv = `1 Jim Robinson Company Co. Active
2 Fred Jimmyson Examples Inc. Inactive
3 Rob Freddison Company Co. Active`;
const properties = ['id', 'name', 'company', 'status'];
const badgeTable = tsv.split('\n').map(
e => Object.fromEntries(
e.split(/\s{2,}/)
.map((value, i) => [properties[i], value])
)
);
console.log(badgeTable);
(我在上面的代碼片段中分開/\s{2,}/
只是為了讓代碼片段運(yùn)行,因為 Stack Exchange 將您的制表符呈現(xiàn)為空格并且制表符空白存在問題 - 您的原始代碼\t
在您的實(shí)際代碼中可以正常工作)

TA貢獻(xiàn)1828條經(jīng)驗 獲得超4個贊
您可以reduce()在遍歷數(shù)組元素時使用填充對象。
reduce()接收數(shù)組索引作為第三個參數(shù),這可用于索引屬性名稱的數(shù)組。
const tsv = `1 Jim Robinson Company Co. Active
2 Fred Jimmyson Examples Inc. Inactive
3 Rob Freddison Company Co. Active`;
const properties = ['id', 'name', 'company', 'status'];
const badgeTable = tsv.split('\n').map(
line => line.split(/\s{2,}/)
.reduce((obj, cur, i) => (obj[properties[i]] = cur, obj), {})
);
console.log(badgeTable);
我復(fù)制了@CertainPerformance 的 hack 以在多個空格上拆分輸入行。
添加回答
舉報