简体   繁体   English

使用对象分配添加属性

[英]Adding property using Object assign

I have the following function: 我有以下功能:

addHrefs = (list) => {
    const listWithHrefs = list.map((item) => {
        item.href = customFunction(item.name);
        return item;
    });
    return listWithHrefs;
}

The problem here is I am mutating the list object. 这里的问题是我正在突变list对象。 I want to know how to add a particular (key, value) pair without mutating list . 我想知道如何在不更改list情况下添加特定的(key, value)对。 Is it possible with Object.assign ? Object.assign是否可能? How can I do it? 我该怎么做?

It is possible with Object.assign . 使用Object.assign是可能的。

The Object.assign() method is used to copy the values of all enumerable own properties from one or more source objects to a target object. Object.assign()方法用于将所有可枚举的自身属性的值从一个或多个源对象复制到目标对象。 It will return the target object. 它将返回目标对象。

You could assign the property value to a new object and return it. 您可以将属性值分配给新对象并返回它。

addHrefs = list =>
    list.map(item => Objects.assign({}, item, { href: customFunction(item.name) }));

You can pass plain object as first parameter to Object.assign() , referenced object at second parameter. 您可以将普通对象作为第一个参数传递给Object.assign() ,在第二个参数处引用该对象。 Perform action on variable assigned to Object.assign() , return variable 对分配给Object.assign()变量执行操作,返回变量

 let list = [{ a: 1 }, { a: 2 }, { a: 3 }]; let res = list.map(item => { let o = Object.assign({}, item); // do stuff with `o` oa = oa + 10; // return `o` return o }); console.log(list, res); 

无法分配给 # 的只读属性<object>使用带有 Recoil 的 React<div id="text_translate"><p> I'm trying to update my state (an array of objects), but get the above error whenever I try to use.map or edit a clone of the state object.</p><pre> React.useEffect(() =&gt; { setUserMeasurements((oldUserMeasurements) =&gt; { return oldUserMeasurements.map(nameAndMeasure =&gt; { if (nameAndMeasure.name === name) { nameAndMeasure.measure = 60 } return nameAndMeasure; }) })</pre><p> })</p><p> 当我尝试代码的“nameAndMeasure.measure = 60”部分时,它似乎不喜欢它,但我不明白为什么。 谁能解释一下?</p></div></object> - Cannot assign to read only property of #<Object> using React with Recoil

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 将对象添加到对象属性中,该对象属性是对象本身并具有对象分配 - Adding objects to an object property which is an object itself with object assign 使用对象文字语法将对象分配给属性 - Assign an object to property using Object Literal Syntax 如何使用变量为对象属性分配值? - How to assign a value to an object property using variable? 使用JavaScript将新属性从变量分配给对象的属性 - Assign new Property to an Object's Property From Variable using JavaScript 如何使用 reduce 将具有属性的 object 分配给 object 的属性 - How to assign object with properties to property of an object using reduce 将属性分配给数组中的 object - assign property to object in array 如何使用JavaScript在嵌套对象数组中按属性分配值 - How to assign values by property in nested object array using javascript 如何动态创建 object 属性并使用 for 循环分配值 - How to dynamically create an object property & assign values using a for loop 无法分配给 # 的只读属性<object>使用带有 Recoil 的 React<div id="text_translate"><p> I'm trying to update my state (an array of objects), but get the above error whenever I try to use.map or edit a clone of the state object.</p><pre> React.useEffect(() =&gt; { setUserMeasurements((oldUserMeasurements) =&gt; { return oldUserMeasurements.map(nameAndMeasure =&gt; { if (nameAndMeasure.name === name) { nameAndMeasure.measure = 60 } return nameAndMeasure; }) })</pre><p> })</p><p> 当我尝试代码的“nameAndMeasure.measure = 60”部分时,它似乎不喜欢它,但我不明白为什么。 谁能解释一下?</p></div></object> - Cannot assign to read only property of #<Object> using React with Recoil 将Object.defineProperty与Angular一起使用会引发TypeError:无法分配为仅读取#的属性(属性) <Object> - Using Object.defineProperty with Angular throws TypeError: Cannot assign to read only property (property) of #<Object>
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM