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

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

使用 map 設(shè)置對象數(shù)組返回相同的值

使用 map 設(shè)置對象數(shù)組返回相同的值

郎朗坤 2022-10-27 16:57:15
我有一個數(shù)組listItems 0: "/static/media/m1.895f1b11.jpg"1: "/static/media/m2.895f1b11.jpg"length: 2和一個對象item={  src: "",   key: ""}我正在嘗試將每個 listItems 添加到 src 中的項目中,例如:item={  src: "/static/media/m1.895f1b11.jpg",   key: 0}并將此項目放入項目://before :items = [];//after (this is what I want) :items = [  {  src: "/static/media/m1.895f1b11.jpg",   key: 0},{  src: "/static/media/m2.895f1b11.jpg",   key: 1}];為此,我在 listItems 中使用地圖,并為每個項目將其添加到我的項目對象的 src 中,然后將我的項目對象添加到我的對象數(shù)組中l(wèi)istItems.map( (img,index) => {                    item.src = img;                    item.key = index;                    console.log("item.src : " +item.src + " item.key : "+item.key + " img : "+img + " index "+ index);                    items.push(item);                });                for(k=0;k<items2.length;k++)                console.log("items["+k+"] : "+items[k].src);它看起來不錯,但是當(dāng)我得到我的日志結(jié)果時:item.src : /static/media/m1.895f1b11.jpg item.key : 0 img : /static/media/m1.895f1b11.jpg index 0 item.src : /static/media/m2.895f1b11.jpg item.key : 1 img : /static/media/m2.895f1b11.jpg index 1 items[0] : /static/media/m2.895f1b11.jpg items[1] : /static/media/m2.895f1b11.jpg展位 items[0] 和 items[1] 是一樣的,問題出在哪里?
查看完整描述

3 回答

?
慕桂英4014372

TA貢獻(xiàn)1871條經(jīng)驗 獲得超13個贊

問題是您只有一個 item對象,您只需在循環(huán)中對其進(jìn)行修改。意識到即使你推入item了一個數(shù)組,這并不意味著你仍然不能改變它。并且您這樣做(在循環(huán)的下一次迭代中),然后item再次推送,因此您的數(shù)組現(xiàn)在有兩個對同一對象的引用(處于其最新狀態(tài))。


旁注:.map旨在返回一個數(shù)組。使用那個力量。


let items = listItems.map((img, index) => {

    return { // a NEW object

        src: img,

        key: index

    };

});

甚至更短,通過為變量使用智能名稱和箭頭函數(shù)表達(dá)式語法:


let items = listItems.map((src, key) => ({src, key}));


查看完整回答
反對 回復(fù) 2022-10-27
?
慕田峪7331174

TA貢獻(xiàn)1828條經(jīng)驗 獲得超13個贊

因為您在同一個對象實例上進(jìn)行操作。由于item.src = img您只是在更新src同一對象實例的屬性,因此您在數(shù)組中獲得了 2 次相同的對象。


您需要為每個項目創(chuàng)建新的對象實例:


const items = listItems.map((src, index) => ({

  key: index,

  src,

}));

為每個... => ({ ... })項目創(chuàng)建一個新的對象實例,它也可以這樣寫:


const items = listItems.map((src, index) => {

  return {

    key: index,

    src,

  }

});


查看完整回答
反對 回復(fù) 2022-10-27
?
千巷貓影

TA貢獻(xiàn)1829條經(jīng)驗 獲得超7個贊

你應(yīng)該做這樣的事情


const listItems = ["/static/media/m1.895f1b11.jpg", "/static/media/m2.895f1b11.jpg"]


const list = []


listItems.map((item, index) => {

        let newObj = {}

    newObj.src = item;

    newObj.key = index;

    list.push(newObj);

}   )


console.log(list)

在地圖內(nèi)創(chuàng)建每個對象并將該對象推送到數(shù)組。


查看完整回答
反對 回復(fù) 2022-10-27
  • 3 回答
  • 0 關(guān)注
  • 244 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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