Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
javascript中的映射函数_Javascript_Arrays_Json_Object - Fatal编程技术网

javascript中的映射函数

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

我的预期输出我需要这个作为对象而不是数组,可以使用map吗


最后,我需要
{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 };