javascript - 插入数组会覆盖之前的值

标签 javascript arrays

我想构建一个具有以下格式的数组:

x = [
      {'projectName': 'a', 'serialNo': 1},
      {'projectName': 'b', 'serialNo': 2},
      {'projectName': 'c', 'serialNo': 3},
]

使用从表单传递的值

onSubmit(form: NgForm) {
    let x = []
    x.push({
      projectName: form.value.projectName,
      serialNo: form.value.serialNo,
    })

    console.log(x) // -> this will always give me the value I just inserted

    // form.value.project = JSON.stringify(x)
    // putObj(form.value).subscribe((res) => { });
}

然后我在后端发送 form.value 并修改字段 project 。我的问题是,每次我将值插入 x 时,之前的值都会被覆盖。

问题出在哪?如果我的代码不清楚,我可以解释或提供更多片段。

编辑:非常感谢!它起作用了,我在组件内声明了 x

最佳答案

let x = [] //declare outside

onSubmit(form: NgForm) {

    x.push({
      projectName: form.value.projectName,
      serialNo: form.value.serialNo,
    })

}

关于javascript - 插入数组会覆盖之前的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52408264/

相关文章:

javascript - 帮助将图像 slider 从 img's 更改为 li's

javascript - 从对象获取属性

python - 在循环中 append 具有不同维度的 numpy ndarrays

javascript - 在javascript中组合N个数组值

Javascript编码打破和组合多字节字符?

javascript - 使用 JavaScript/Jquery 在 Ruby 中显示具有相同 id/class 的表单

javascript - 停止 ng-view 内的 Angular 路由链接

javascript - 使用 javascript 搜索重点关注搜索词是什么

java - 如何在不使用 .equals 和 false boolean 值的情况下比较数组

javascript - 为什么 console.log(1 && 2) 的值是 2 而不是 javascript 中的 true 或 1?