gpt4 book ai didi

javascript - 在 Javascript 中替换数组元素会产生意外结果

转载 作者:行者123 更新时间:2023-11-28 12:14:02 25 4
gpt4 key购买 nike

我尝试用其替代项(特定对象)替换数组元素(通用对象),但原始数组中的对象保持不变。

class SpecificObject{
}

this.Objects = [{},{}];

this.Objects.map((signer,index) => {
//convert json generics to js objects
this.Objects[index] = new SpecificObject(signer);
});

console.log(this.Objects);

不确定代码片段是否正确说明了问题,但我期望看到的是:

[
SpecificObject{},
SpecificObject{}
]

我什至尝试克隆原始对象来进行迭代,但没有帮助。一定是缺少了一些愚蠢的东西。有没有办法用 lodash 来实现我所需要的?

编辑(遵循答案建议):现在我执行以下操作:

console.log('signers-before', this.Signers);
this.Signers.map(signer => new SigningTableSigner(signer));
console.log('signers-after',this.Signers);

这就是我在日志中得到的内容(对象仍然保持通用):

enter image description here

编辑2

哎呀,我忘记了作业。 this.Signers =

现在就像这样一切都按预期工作:

console.log('signers-before', this.Signers);
this.Signers = this.Signers.map(signer => new SigningTableSigner(signer));
console.log('signers-after',this.Signers);

最佳答案

迭代集合时无需修改集合。只需从map返回对象即可。

this.Objects = this.Objects.map((signer,index) => new SpecificObject(signer));

关于javascript - 在 Javascript 中替换数组元素会产生意外结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53639818/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com