javascript - 无法增加界面中的字段

标签 javascript node.js typescript

我有一组对象(接口(interface))。

创建这个数组后,有了对象,我需要增加一个值 每个对象里面。 (“x1”到“x2”)。

迭代结束时,所有的'x1'和'x2'值为index的最新值。

let data: any = [];

let object: any = {
    xaxis: null,
    yaxis: null,
}

data.push(object)
data.push(object)

const doTHIS = () => {

    const newData = data.map((item: any, index: any) => {
        item.xaxis = 'x' + index + 1;
        item.yaxis = 'y' + index + 1;
        return item
    });
    return newData;
}

预期结果:

[ { xaxis: 'x1', yaxis: 'y1' }, { xaxis: 'x2', yaxis: 'y2' } ]

实际结果:

[ { xaxis: 'x2', yaxis: 'y2' }, { xaxis: 'x2', yaxis: 'y2' } ]

最佳答案

您将同一个对象两次插入数组。

该数组中的所有索引都指向同一个对象 (data[0] === data[1]),因此循环中的每个更改都针对同一个对象。

从您的代码来看,在我看来您是编程新手。我想你想做的是:

let data = Array.from({ length: 2 }, (,index) => { //we don't need the first argument here
  return {
    xaxis: 'x' + (index + 1),
    yaxis: 'y' + (index + 1),
  };
});

console.log(data);

关于javascript - 无法增加界面中的字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57021483/

相关文章:

javascript - 加载图像后启动过渡事件

javascript - 将只有键的对象分配给 require 语句

node.js - twilio 操作 url 中的查询参数

javascript - XHR 抛出无法捕获的错误

angular - RXJS 扩展从不退出递归调用

javascript - 使用 Django 或 JS 打开相机并扫描二维码

javascript - 如何在执行 ng repeat 时生成具有默认值的数组属性?

node.js - 我可以在浏览器中启动 socket.io/websocket 服务器吗?

javascript - Angular : Convert Object into Date and Moment

typescript - TypeScript 规范中 AB|C 中的 AB 是什么意思?