首页 > 解决方案 > 在反应状态下将不可变的对象数组转换为可变的

问题描述

我有一个包含 javascript / typescript 中的对象的数组。

let array = [
            { id: 1, name: "One", location: { lat: 23.2223, lng: 56.2214 } },
            { id: 2, name: "Two", location: { lat: 23.2226, lng: 56.2214 } },
            { id: 3, name: "Three", location: { lat: 23.2223, lng: 56.2214 } },
          ];

如何更新第二个元素的位置(使用 lat 23.2226)并使用 javascript spread (...) 运算符将数组复制到新数组?

标签: javascriptarraysjsonobject

解决方案


let array = [
             { id: 1, name: "One", location: { lat: 23.2223, lng: 56.2214 } },
             { id: 2, name: "Two", location: { lat: 23.2226, lng: 56.2214 } },
             { id: 3, name: "Three", location: { lat: 23.2223, lng: 56.2214 } },
           ];

array.find((d) => (d['name'] == 'Two'))['location']['lat'] = 23.000

console.log(array)
/*[
  { id: 1, name: 'One', location: { lat: 23.2223, lng: 56.2214 } },
  { id: 2, name: 'Two', location: { lat: 23, lng: 56.2214 } },
  { id: 3, name: 'Three', location: { lat: 23.2223, lng: 56.2214 } }
]*/

推荐阅读