ES6 对象分配部分项目
ES6 object assign partial items
我有一个 js 对象列表,例如:
actualVal = [{pId: a1, pVal: b1}, {pId: a2, pVal: b2}, ....]
我正在将其传递给我的函数,并使用 ES6 作为我的参考:
let { myVal } = actualVal;
这给了我类似的东西:
myVal = [{pId: a1, pVal: b1}, {pId: a2, pVal: b2}, ....]
在 ES6 中有没有办法得到这个:
myVal = [{id: a1, val: b1}, {id: a2, val: b2}, ....]
我可以遍历数组来执行此操作,但是有没有一种方法可以在不迭代的情况下映射它?谢谢!
更新:感谢大家的回答。那么哪种方法最有效?
您可以像这样使用 map 遍历数组
myVal.map( val => {return {id: val.pId, val: val.pVal}})
没有,但 lodash 的 mapKeys
功能可以帮助您完成这项工作。此外,let { myVal } = actualVal
不会创建数组的副本,如果这是您的想法,因此无论如何您都需要以其他方式处理它。
actualVal = [{pId: a1, pVal: b1}, {pId: a2, pVal: b2}, ....]
let newArr = actualVal.map((e, i) => {
return _.mapKeys(e, function (val, key) {
if (key === 'pId')
return 'id'
else if
// ...
}
仅使用数组映射:
myVal = actualVal.map(function(obj) {
return {
id: obj.pId,
val: obj.pVal
};
});
我有一个 js 对象列表,例如:
actualVal = [{pId: a1, pVal: b1}, {pId: a2, pVal: b2}, ....]
我正在将其传递给我的函数,并使用 ES6 作为我的参考:
let { myVal } = actualVal;
这给了我类似的东西:
myVal = [{pId: a1, pVal: b1}, {pId: a2, pVal: b2}, ....]
在 ES6 中有没有办法得到这个:
myVal = [{id: a1, val: b1}, {id: a2, val: b2}, ....]
我可以遍历数组来执行此操作,但是有没有一种方法可以在不迭代的情况下映射它?谢谢!
更新:感谢大家的回答。那么哪种方法最有效?
您可以像这样使用 map 遍历数组
myVal.map( val => {return {id: val.pId, val: val.pVal}})
没有,但 lodash 的 mapKeys
功能可以帮助您完成这项工作。此外,let { myVal } = actualVal
不会创建数组的副本,如果这是您的想法,因此无论如何您都需要以其他方式处理它。
actualVal = [{pId: a1, pVal: b1}, {pId: a2, pVal: b2}, ....]
let newArr = actualVal.map((e, i) => {
return _.mapKeys(e, function (val, key) {
if (key === 'pId')
return 'id'
else if
// ...
}
仅使用数组映射:
myVal = actualVal.map(function(obj) {
return {
id: obj.pId,
val: obj.pVal
};
});