javascript中的映射函数
我的预期输出我需要这个作为对象而不是数组,可以使用map吗javascript中的映射函数,javascript,arrays,json,object,Javascript,Arrays,Json,Object,我的预期输出我需要这个作为对象而不是数组,可以使用map吗 最后,我需要{cno:2}您可以使用reduce而不是map映射实际返回一个数组。使用reduce可以获得所需的结果 var数据=[{ 身份证号码:22, 首席新闻官:1,, 用户名:“白色”, 名称:“新投诉”, stype:null, cname:'ff', 产品:"ff",, }]; var finalData=数据减少((会计科目、要素、指数)=>{ 附件cno=要素cno+1 返回acc }, {}); console.lo
最后,我需要
{cno:2}
您可以使用reduce
而不是map
<代码>映射实际返回一个数组
。使用reduce可以获得所需的结果
var数据=[{
身份证号码:22,
首席新闻官:1,,
用户名:“白色”,
名称:“新投诉”,
stype:null,
cname:'ff',
产品:"ff",,
}];
var finalData=数据减少((会计科目、要素、指数)=>{
附件cno=要素cno+1
返回acc
}, {});
console.log(最终数据);//输出{cno:2}
,因为您只是试图对单个对象进行操作,所以根本不应该使用map。您应该使用以下内容:
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} ]
例如:
var数据=[{
身份证号码:22,
首席新闻官:1,,
用户名:“白色”,
名称:“新投诉”,
stype:null,
cname:'ff',
产品:"ff",,
}];
var finalData={cno:data[0].cno+1};
console.log(finalData)代码>最简单的方法是使用ES6解构([data]=data;
),如下例所示:
var数据=[{
身份证号码:22,
首席新闻官:1,,
用户名:“白色”,
名称:“新投诉”,
stype:null,
cname:'ff',
产品:"ff",,
}];
[数据]=数据;//数据现在是嵌套对象
console.log(数据);//将数据作为对象返回
//之后,您可以根据需要修改数据
data.cno+=1;
console.log(数据);//将更新的数据作为对象返回
不单独使用map
。始终返回一个数组。如果数组始终只有一个元素,则可以使用[0]
访问它,但是你真的不应该在这种情况下使用map。如何将其作为一个对象你可以使用reduce
你的数据
数组是否总是只包含一个元素?@Paulpro是一个元素但是如果使用这种方法,请确保你的数据
永远不是空数组(即总是至少有一个元素)或者这将抛出一个错误。@AyushGupta同意,这个答案是在OP在对他的问题的评论中所说的假设下工作的:数组总是只有一个元素。@Yep,但检查从来都不是坏事。记住墨菲定律:任何可能出错的都会出错。Reduce对于将数组缩减为单个值非常有用。在这种情况下,OP(在评论中)提到他们的数据数组始终只有一个元素,因此它没有理由首先实际是一个数组,或者像数组一样操作。在这种情况下,只使用数据[0]
访问对象要简单得多。@Paulpro是的。但我尝试了更一般的方法来回答;)
var finalData = { cno: data[ 0 ].cno + 1 };