javascript - 对象分配扩展对象的不可变数组

标签 javascript arrays immutable.js

我想要一个不可变的原始对象数组并扩展一个新的,但似乎下面的代码没有产生正确的结果。 obj3 成为对象而不是对象数组。我什至尝试了 lodash 的扩展。

var obj1 = [{
  abc: 'abc value'
}, {
  def: 'def value'
}];

var obj2 = {
  def: 'new def value'
};

/*var obj3 = _.extend({}, obj1, obj2);
console.log(obj3)
*/

var obj3 = Object.assign({},obj1,obj2);

https://jsbin.com/bawadeqicu/edit?html,js,output

我的愿望输出是

obj1: [{"abc":"abc value"},{"def":"def value"}] // immutable
obj3: [{"abc":"abc value"},{"def":"new def value"}]

最佳答案

不可变

与其传递对象并改变它,不如创建一个全新的对象:

const person = {
  name: 'John',
  age: 28
}
const newPerson = Object.assign({}, person, {
  age: 30
})
console.log(newPerson === person) // false
console.log(person) // { name: 'John', age: 28 }
console.log(newPerson) // { name: 'John', age: 30 }

source

关于javascript - 对象分配扩展对象的不可变数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41516039/

相关文章:

javascript - 如何自定义此 Google 条形图?

javascript - 使用从服务器动态填充的信息对 HTML 表进行排序

javascript - 在 JavaScript 中尝试对象

java - 在多维数组中搜索字符串

javascript - 从下拉列表中选择某个值时使用 ng-show 显示输入

Java 可变数组长度

javascript - 计算多维数组中具有最高值属性的对象

javascript - 按 Asc 和 Desc 日期排序

javascript - 如何将 ImmutableJS 的 reduce 函数与 Immutable 累加器一起使用?

javascript - 将 React 的 shouldComponentUpdate 与 Immutable.js 游标一起使用