在javascript中动态处理数组的索引,就像我们对对象所做的一样

问题描述 投票:0回答:1

这个问题基本上是redux state manipulation ease if one has to return array instead of object in redux array为了操纵对象的动态属性,我们这样做]

const myObj = {
   name : 'any name',
   email : 'any email',
   dob : 'any dob'
}

如果要在操作后返回新对象我想从一个动态地操作属性功能我可以轻松做到

return {
  ...myObj,
  [action.dynamicProp] : action.anyValue
}

但是如果我想对数组做同样的事情,我将无法使用传播语法来做到这一点

const myArr = ['value1','value2','value3'];
return [...myArr,?????????]

所以可以使用传播语法来做到这一点吗?(一个人可以不用传播运算符就可以做到这一点,但关键是要使用传播语法)

javascript ecmascript-6 redux react-redux
1个回答
1
投票

您可以通过spread来做到这一点,但是您还必须.slice要替换的项目之前和之后的部分,并将它们扩展到新的数组中。例如,替换索引为1的项目:

const myArr = ['value1','value2','value3'];
const index = 1;
const output = [
   ...myArr.slice(0, index),
   'newItem',
   ...myArr.slice(index + 1),
];
 console.log(output);

您还可以制作数组的浅表副本并分配给索引,但这功能较少:

const myArr = ['value1','value2','value3'];
const index = 1;
const output = [...myArr];
output[index] = 'newItem';
 console.log(output);
© www.soinside.com 2019 - 2024. All rights reserved.