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

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

如何使用嵌套數(shù)組在javascript中形成對(duì)象,使用第一個(gè)數(shù)組作為對(duì)象,數(shù)組的其余部分作為值

如何使用嵌套數(shù)組在javascript中形成對(duì)象,使用第一個(gè)數(shù)組作為對(duì)象,數(shù)組的其余部分作為值

桃花長相依 2022-01-20 20:43:10
我得到了一個(gè)這樣的數(shù)組:data = [  ['first_name', 'second_name', 'sex'],  ['Jacob', 'David', 'M'],  ['Kathryn', 'Gardener', 'F'],  ['Jamaal', 'Dave', 'Unknown']].解決方案是將數(shù)組作為看起來像這樣的對(duì)象返回:[  { first_name: "Jacob", second_name: "David", sex: "M" },  { first_name: "Kathryn", second_name: "Gardener", sex: "F" }  {....}];我寫了以下代碼:var object = {};var arrays = [];for (i = 0; i < data.length; i++){   for (var j = i; j < data.length; j++){       var keys = data[0][i];       var values = data [j][i];       object[keys] = values;   }   arrays.push(object);};但我的輸出是:[   {       first_name :'Jamaal',      second_name : 'Dave',      sex : 'unknown'   },   {       first_name :'Jamaal',      second_name : 'Dave',      sex : 'unknown'   },   {      first_name :'Jamaal',      second_name : 'Dave',       sex : 'unknown'   },   {      first_name :'Jamaal',      second_name : 'Dave',      sex : 'unknown'    }];我也嘗試了幾種方法,要么我最終只能創(chuàng)建一個(gè)對(duì)象......
查看完整描述

3 回答

?
慕尼黑的夜晚無繁華

TA貢獻(xiàn)1864條經(jīng)驗(yàn) 獲得超6個(gè)贊

您需要在第一個(gè)循環(huán)中使用新對(duì)象(引用),否則您會(huì)為每一行獲得相同的對(duì)象。


var data = [ ['first_name', 'second_name', 'sex'], ['Jacob', 'David', 'M'], ['Kathryn', 'Gardener', 'F'], ['Jamaal', 'Dave', 'Unknown']],

    result = [],

    i, j,

    object;


for (i = 0; i < data.length; i++) {

    object = {};                           // take a new object

    for (j = 0; j < data[i].length; j++) { // start from zero

        object[data[0][j]] = data[i][j];   // use j as last key

    }

    result.push(object);

}


console.log(result);

.as-console-wrapper { max-height: 100% !important; top: 0; }


一個(gè)更短的方法Object.fromEntries。


const

    getObjects = ([header, ...data]) => data.map(values =>

        Object.fromEntries(values.map((value, index) => [header[index], value])));


var data = [['first_name', 'second_name', 'sex'], ['Jacob', 'David', 'M'], ['Kathryn', 'Gardener', 'F'], ['Jamaal', 'Dave', 'Unknown']],

    result = getObjects(data);


console.log(result);

.as-console-wrapper { max-height: 100% !important; top: 0; }


查看完整回答
反對(duì) 回復(fù) 2022-01-20
?
慕斯709654

TA貢獻(xiàn)1840條經(jīng)驗(yàn) 獲得超5個(gè)贊

  var data = [

  ['first_name', 'second_name', 'sex'],

  ['Jacob', 'David', 'M'],

  ['Kathryn', 'Gardener', 'F'],

  ['Jamaal', 'Dave', 'Unknown']

]



function createObject(arr){

    var arr2 = [];

    keysArr = arr[0];

    arr.splice(0,1);

    arr.forEach(function(x,i){

        arr2[i] = {};

        arr[i].forEach(function(y,j){

            arr2[i][keysArr[j]] = arr[i][j];

        });

    });

    return arr2;

}


createObject(data);


查看完整回答
反對(duì) 回復(fù) 2022-01-20
?
陪伴而非守候

TA貢獻(xiàn)1757條經(jīng)驗(yàn) 獲得超8個(gè)贊

你可以做這樣的事情


dataToObj=(data)=>{

   let head=data[0];

   let result=[];

   for(let i=1;i<data.length;i++){

      let obj={};

       for(let j=0;j<head.length;j++){

         obj[head[j]]=data[i][j]

       }

     result.push(obj);

 }

 return result;

}


查看完整回答
反對(duì) 回復(fù) 2022-01-20
  • 3 回答
  • 0 關(guān)注
  • 171 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號(hào)

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