Javascript 给定一个对象数组,如何用另一个替换键名,同时保留原始键的值?
我试图获取一个对象数组,在不改变原始数组的情况下,重命名每个对象中的一个特定键 我创建了一个新变量,并将其分配给在原始数组中使用“map”的结果(以避免变异)。 在“map”方法中,我尝试解构“keyToChange”参数,并将其余值分散到“newKey”中Javascript 给定一个对象数组,如何用另一个替换键名,同时保留原始键的值?,javascript,object,Javascript,Object,我试图获取一个对象数组,在不改变原始数组的情况下,重命名每个对象中的一个特定键 我创建了一个新变量,并将其分配给在原始数组中使用“map”的结果(以避免变异)。 在“map”方法中,我尝试解构“keyToChange”参数,并将其余值分散到“newKey”中 const renameKeys = (array, keyToChange, newKey) => { const spreadArray = array.map(({keyToChange: newKey, ...rest})
const renameKeys = (array, keyToChange, newKey) => {
const spreadArray = array.map(({keyToChange: newKey, ...rest}) => ({newKey, ...rest}));
return spreadArray;
};
上面的代码返回
'newKey:[未定义]”
后跟原始对象数组
任何帮助都将不胜感激。如果您想更改表达式,请在其周围使用方括号
[]
const renameKeys = (array, keyToChange, newKey) => {
const spreadArray = array.map(({[keyToChange]: newKey, ...rest}) => ({newKey, ...rest}));
return spreadArray;
};
您需要一个而不是一个(未给定)属性keyToChange
const spreadArray = array.map(({ [keyToChange]: newKey, ...rest }) => ({ newKey, ...rest }));
// ^^^^^^^^^^^^^
如果要使用动态值作为键,请使用方括号表示法。 */
const spreadArray = array.map(({ [keyToChange]: newKey, ...rest}) => ({newKey, ...rest}));