第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

有沒有一種將數(shù)組項轉(zhuǎn)換為對象屬性的簡寫方法?

有沒有一種將數(shù)組項轉(zhuǎn)換為對象屬性的簡寫方法?

蕭十郎 2023-04-14 15:06:11
我一直在閱讀 MDN,看到了可以用 rest 和 spread 運(yùn)算符以及數(shù)組解構(gòu)完成的所有巧妙技巧,現(xiàn)在我想知道是否有一種方法可以快速將數(shù)組項映射到命名對象屬性。我有一些純文本制表符分隔值(從電子表格復(fù)制),現(xiàn)在我或多或少有這樣的東西:const tsv = `1  Jim Robinson    Company Co. Active2   Fred Jimmyson   Examples Inc.   Inactive3   Rob Freddison   Company Co. Active`;const badgeTable = tsv.split('\n').map(e => {    let tmp = {};    [ tmp.id, tmp.name, tmp.company, tmp.status ] = e.split('\t')    return tmp})基本上,我想知道是否有辦法取消tmp我在 map 函數(shù)中使用的變量,并直接將文本拆分為具有屬性名稱的對象。我嘗試使用傳播運(yùn)算符,如下所示:const badgeTable = tsv.split('\n').map(e => ({0:id, 1:name, 2:company, 4:status} = {...e.split('\t')}))但它并沒有按照我的意愿命名屬性,而是僅使用數(shù)組索引作為屬性名稱。
查看完整描述

2 回答

?
慕村9548890

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í)際代碼中可以正常工作)



查看完整回答
反對 回復(fù) 2023-04-14
?
明月笑刀無情

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 以在多個空格上拆分輸入行。


查看完整回答
反對 回復(fù) 2023-04-14
  • 2 回答
  • 0 關(guān)注
  • 177 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號