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

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

對(duì)象始終獲取 forEach 循環(huán)中的最后一個(gè)值 - JavaScript

對(duì)象始終獲取 forEach 循環(huán)中的最后一個(gè)值 - JavaScript

慕姐4208626 2023-08-18 16:14:51
嘗試根據(jù)的array2值過濾結(jié)果,但結(jié)果數(shù)組始終打印 forEach 循環(huán)中的最后一個(gè)值。typearray1片段const array1 = [{    name: "Audi",    type: "sedan"  },  {    name: "BMW",    type: "sedan"  },  {    name: "Benz",    type: "suv"  }];const array2 = [{  year: "2020"}, {  year: "2021"}];let a = [];let customObject1 = {};let array3 = [];array1.forEach((val1) => {  array2.forEach((val2) => {    if (val1.type === "sedan") {      customObject1["label"] = "Sedan Car";      customObject1["year"] = val2.year;      array3.push(customObject1);      console.log(array3);    }  });});這是我期待的結(jié)果。有人可以幫忙嗎?array3 = [{label: 'Sedan Car', year: '2020'}, {label: 'Sedan Car', year: '2021'}]
查看完整描述

4 回答

?
呼喚遠(yuǎn)方

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

當(dāng)您推送到 array3 時(shí),您需要在每個(gè)循環(huán)中克隆 customObject1,您可以使用 JSON.stringify() 然后 JSON.parse() 來獲取該對(duì)象的副本(在內(nèi)存中具有新的引用),否則您將覆蓋每個(gè)循環(huán)引用同一對(duì)象。

let a = [];

let customObject1 = {};

let array3 = [];

array1.forEach((val1) => {

? array2.forEach((val2) => {

? ? if (val1.type === "sedan") {

? ? ? customObject1["label"] = "Sedan Car";

? ? ? customObject1["year"] = val2.year;

? ? ? array3.push(JSON.parse(JSON.stringify(customObject1)));

? ? ? console.log(array3);

? ? }

? });

});


查看完整回答
反對(duì) 回復(fù) 2023-08-18
?
MYYA

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

customObject1您只能獲得最后一個(gè)值,因?yàn)槟鸀槊總€(gè)元素重復(fù)使用相同的實(shí)例array3。customObject1通過為每個(gè)元素定義一個(gè)新實(shí)例,您將獲得更好的結(jié)果:


const array1 = [{

    name: "Audi",

    type: "sedan"

  },

  {

    name: "BMW",

    type: "sedan"

  },

  {

    name: "Benz",

    type: "suv"

  }

];

const array2 = [{

  year: "2020"

}, {

  year: "2021"

}];


let a = [];

let array3 = [];

array1.forEach((val1) => {

  array2.forEach((val2) => {

    if (val1.type === "sedan") {

      let customObject1 = {};

      customObject1["label"] = "Sedan Car";

      customObject1["year"] = val2.year;

      array3.push(customObject1);

      console.log(array3);

    }

  });

});


查看完整回答
反對(duì) 回復(fù) 2023-08-18
?
墨色風(fēng)雨

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

問題是,在內(nèi)部 forEach 循環(huán)的每次迭代期間都使用相同的 customObject 引用。我更喜歡一種完全不使用變量的解決方案,直接將對(duì)象作為參數(shù)傳遞到推送函數(shù)中。


let a = [];

let array3 = [];

array1.forEach((val1) => {

  array2.forEach((val2) => {

    if (val1.type === "sedan") {

      array3.push({ label: "Sedan Car", year: val2.year });

    }

  });

});

如果您想保留變量,您還可以利用對(duì)象解構(gòu)來創(chuàng)建副本


let a = [];

let customObject1 = {};

let array3 = [];

array1.forEach((val1) => {

  array2.forEach((val2) => {

    if (val1.type === "sedan") {

      customObject1["label"] = "Sedan Car";

      customObject1["year"] = val2.year;

      array3.push({...customObject1}) //destructuring the object;

      console.log(array3);

    }

  });

});


查看完整回答
反對(duì) 回復(fù) 2023-08-18
?
慕工程0101907

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

我知道你想在這里做什么。但您可以這樣做。


const array1 = [

  {

    name: 'Audi',

    type: 'sedan',

  },

  {

    name: 'BMW',

    type: 'sedan',

  },

  {

    name: 'Benz',

    type: 'suv',

  },

];

const array2 = [

  {

    year: '2020',

  },

  {

    year: '2021',

  },

];


const array3 = [];


array2.forEach((item, index) => {

  array1.forEach((item2) => {

    if (item2.type === 'sedan') {

      item.label = 'Sedan Car';

    }

  });

  array3.push(item);

});


console.log(array3);


查看完整回答
反對(duì) 回復(fù) 2023-08-18
  • 4 回答
  • 0 關(guān)注
  • 372 瀏覽
慕課專欄
更多

添加回答

舉報(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)