如何替换数组中的对象值?
2020-08-11
102
我被这个问题难住了,一直在寻找方向。我有一个状态对象:
const state = [
{type: 'Primary', number: 123456},
{type: 'Mobile', number: 789012}
]
我有一个函数,它为我提供了
oldValue
、
newValue
和
index
的更新值。
我如何才能替换特定的
number
值(例如在“Mobile”对象中)并返回新数组?
3个回答
如果您有
state
数组
index
,则需要更改
newValue
和
oldValue
:
const newState = state.map((obj, i) => {
if(i === index && obj.number === oldValue) {
let newObj = { ...obj };
newObj.number = newValue;
return newObj;
}
return obj;
}
jamomani
2020-08-11
您可以使用
array.find()
来查找相应的对象并替换特定的值:
const state = [
{type: 'Primary', number: 123456},
{type: 'Mobile', number: 789012}
]
// This will find and return the FIRST item that matches, or undefined if none are found
const ObjectToChange = state.find(elem => elem.type === 'Mobile')
if (ObjectToChange != undefined)
ObjectToChange.number = 42;
console.log(state);
Cid
2020-08-11
如果您的意思是更改值:
const state = [
{type: 'Primary', number: 123456},
{type: 'Mobile', number: 789012}
];
state[state.findIndex(item=>item.type==='Mobile')]={type:'Mobile',number:1111}
console.log(JSON.stringify(state,null,2));
Vahid Alimohamadi
2020-08-11