var data = [{
id: 22,
cno: 1,
username: 'white',
name: 'New Complaint',
stype: null,
cname: 'ff',
product: 'ff',
}];
var finalData = data.map(x => {
return ({ cno: x.cno + 1 })
});
console.log(finalData); // output [ { cno: 2} ]
我的预期输出我需要这个对象而不是数组,是否可以使用map?
最后我需要{ cno : 2}
答案 0 :(得分:3)
由于您只是尝试对单个对象进行操作,因此您根本不应该使用地图。你应该使用类似的东西:
var finalData = { cno: data[ 0 ].cno + 1 };
示例:
var data = [{
id: 22,
cno: 1,
username: 'white',
name: 'New Complaint',
stype: null,
cname: 'ff',
product: 'ff',
}];
var finalData = { cno: data[ 0 ].cno + 1 };
console.log( finalData );

答案 1 :(得分:2)
您可以使用reduce
代替map
。 map
实际上会返回array
。使用reduce可以获得理想的结果。
var data = [{
id: 22,
cno: 1,
username: 'white',
name: 'New Complaint',
stype: null,
cname: 'ff',
product: 'ff',
}];
var finalData = data.reduce((acc, elem, index) => {
acc.cno = elem.cno + 1
return acc
}, {});
console.log(finalData); // output { cno: 2}

答案 2 :(得分:0)
最简单的方法是使用ES6解构([data] = data;
),如下例所示:
var data = [{
id: 22,
cno: 1,
username: 'white',
name: 'New Complaint',
stype: null,
cname: 'ff',
product: 'ff',
}];
[data] = data; // data is now the nested object
console.log(data); // Return data as object
// After that, you can modify data however you want
data.cno += 1;
console.log(data); // Return updated data as object