国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

ReactJs:使用映射函數(shù)后我的父數(shù)組得到更新
P粉208286791
P粉208286791 2024-04-03 20:04:17
[React討論組]

我正在嘗試在數(shù)組中插入新的鍵,這些鍵基本上是從父數(shù)組中提取的。我找不到僅僅通過將新密鑰插入到提取的數(shù)組中就會(huì)導(dǎo)致商店內(nèi)的主數(shù)組發(fā)生變化的原因。

這是我嘗試在自定義數(shù)組中添加新鍵值對(duì)的方法

const array = [{"integrationTypeId":1,"type":"aptus","fields":[{"name":"base_url"},{"name":"hash_key"}]}]

function runArray(){
let connectorObject= {}
let newArray
if (array.length > 0) {
                connectorObject =
                    array.find(
                        (c) => c.integrationTypeId === 1,
                    );
                newArray = connectorObject.fields
                newArray !== undefined &&
                    newArray.map((object) => {
                        return Object.assign(object, {
                            inputType: "textField",
                            value: object.name,
                        })
                    })
            }
            console.log(JSON.stringify(newArray))
            console.log(JSON.stringify(array))
}

runArray();

以下是輸出:

控制臺(tái) 1.:newArray

[{"name":"base_url","inputType":"textField","value":"base_url"},{"name":"hash_key","inputType":"textField","value":"hash_key"}]

控制臺(tái) 2.:父數(shù)組

[{"integrationTypeId":1,"type":"aptus","fields":[{"name":"base_url","inputType":"textField","value":"base_url"},{"name":"hash_key","inputType":"textField","value":"hash_key"}]}]

是什么讓它用 newArray 值進(jìn)行修改。

甚至嘗試過: newArray.map(obj => ({ ...obj, [inputType]: "textField"}));

P粉208286791
P粉208286791

全部回復(fù)(1)
P粉141455512

重要的是要知道 Javascript 數(shù)組和對(duì)象是通過引用傳遞的。這意味著如果您修改數(shù)組或?qū)ο螅鼘⒎从吃趯?duì)該數(shù)組或?qū)ο蟮乃幸弥小?/p>

在這種情況下,數(shù)組-->對(duì)象-->數(shù)組-->對(duì)象嵌套過多。因此,在提取時(shí)請(qǐng)確保創(chuàng)建一個(gè)新的數(shù)組或?qū)ο?。這里我使用 ES6 ... 語法來創(chuàng)建一個(gè)新的數(shù)組/對(duì)象。只需使用 = 即可復(fù)制其引用,從而反映更改。

下面的代碼尚未優(yōu)化,但我希望您明白這一點(diǎn)。

const array = [
  {
    integrationTypeId: 1,
    type: "aptus",
    fields: [{ name: "base_url" }, { name: "hash_key" }],
  },
];

function runArray() {
  let connectorObject = {};
  let newArray = [];

  if (array.length > 0) {
    connectorObject = {
      ...array.find((c) => c.integrationTypeId === 1), //Creating brand new copy of array object
      fields: [...array.find((c) => c.integrationTypeId === 1).fields], //Creating brand new copy of fields array
    };

    newArray = connectorObject.fields.map((field) => {  //Creating brand new copy of fields array object
      return { ...field };
    });

    newArray.map((object) => {
      Object.assign(object, {
        inputType: "textField",
        value: object.name,
      });
    });
  }
  console.log(JSON.stringify(newArray));
  console.log(JSON.stringify(array));
}

runArray();
最新下載
更多>
網(wǎng)站特效
網(wǎng)站源碼
網(wǎng)站素材
前端模板
關(guān)于我們 免責(zé)申明 意見反饋 講師合作 廣告合作 最新更新
php中文網(wǎng):公益在線php培訓(xùn),幫助PHP學(xué)習(xí)者快速成長!
關(guān)注服務(wù)號(hào) 技術(shù)交流群
PHP中文網(wǎng)訂閱號(hào)
每天精選資源文章推送
PHP中文網(wǎng)APP
隨時(shí)隨地碎片化學(xué)習(xí)
PHP中文網(wǎng)抖音號(hào)
發(fā)現(xiàn)有趣的

Copyright 2014-2025 http://m.miracleart.cn/ All Rights Reserved | php.cn | 湘ICP備2023035733號(hào)