我尝试获取一个对象数组,并且在不改变原始数组的情况下,重命名每个对象中的一个特定键。
我已经创建了一个新的变量,并将其赋值给在原始数组上使用'map‘的结果(以避免突变)。在'map‘方法中,我尝试解构'keyToChange’参数,并将其余的值传递给'newKey‘。
const renameKeys = (array, keyToChange, newKey) => {
const spreadArray = array.map(({keyToChange: newKey, ...rest}) => ({newKey, ...rest}));
return spreadArray;
};上面的代码返回'newKey: [undefined]',后跟原始的对象数组。
任何帮助都将不胜感激。
发布于 2019-06-01 23:04:10
您需要一个computed property name,而不是一个(未给定的)属性keyToChange。
const spreadArray = array.map(({ [keyToChange]: newKey, ...rest }) => ({ newKey, ...rest }));
// ^^^^^^^^^^^^^发布于 2019-06-01 23:09:39
如果要使用动态值作为键,请使用方括号表示法。https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Property_accessors */
const spreadArray = array.map(({ [keyToChange]: newKey, ...rest}) => ({newKey, ...rest}));发布于 2019-06-01 23:04:07
如果您希望将一个表达式作为要更改的键,请使用方括号将其括起来[]
const renameKeys = (array, keyToChange, newKey) => {
const spreadArray = array.map(({[keyToChange]: newKey, ...rest}) => ({newKey, ...rest}));
return spreadArray;
};https://stackoverflow.com/questions/56407811
复制相似问题