Return 来自带有 lodash 的数组的对象键和值
Return an Object Key and Value from an Array with lodash
我有这个数组,我需要取出每个 name 和 age 值,然后生成 name 值是一个新键,age 值是一个新值。
数组
var arr = [
{name: "jack", age: 32 },
{name: "jane", age: 34 }
]
我之前的代码
var monthlyProfit = _.map(arr, function(v) {
var obj = {
v.name: v.age
};
return obj;
});
console.log(monthlyProfit) // Error
预期
var arr = [
{jack: 32},
{jane: 34}
]
我正在使用 lodash,但 vanilla JS 不会有问题。
您当前尝试定义 属性 的方式将不起作用。有多种方法可以实现您想要实现的目标,但我通常会这样做(使用 ES5):
var monthlyProfit = _.map(arr, function(v) {
return {[v.name] : v.age};
});
或者像这样,作为ES6的一行:
//using lodash
var monthlyProfit = _.map(arr, ({ name, age }) => ({ [name]: age }))
//or, pure ES6 without lodash:
var monthlyProfit = arr.map(({ name, age }) => ({ [name]: age }))
您应该会在当前代码中创建对象的那一行看到 Syntax Error: Unexpected token .
。
我有这个数组,我需要取出每个 name 和 age 值,然后生成 name 值是一个新键,age 值是一个新值。
数组
var arr = [
{name: "jack", age: 32 },
{name: "jane", age: 34 }
]
我之前的代码
var monthlyProfit = _.map(arr, function(v) {
var obj = {
v.name: v.age
};
return obj;
});
console.log(monthlyProfit) // Error
预期
var arr = [
{jack: 32},
{jane: 34}
]
我正在使用 lodash,但 vanilla JS 不会有问题。
您当前尝试定义 属性 的方式将不起作用。有多种方法可以实现您想要实现的目标,但我通常会这样做(使用 ES5):
var monthlyProfit = _.map(arr, function(v) {
return {[v.name] : v.age};
});
或者像这样,作为ES6的一行:
//using lodash
var monthlyProfit = _.map(arr, ({ name, age }) => ({ [name]: age }))
//or, pure ES6 without lodash:
var monthlyProfit = arr.map(({ name, age }) => ({ [name]: age }))
您应该会在当前代码中创建对象的那一行看到 Syntax Error: Unexpected token .
。