Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/460.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 ES6处理对象(减少函数)_Javascript_Function_Object_Ecmascript 6 - Fatal编程技术网

Javascript ES6处理对象(减少函数)

Javascript ES6处理对象(减少函数),javascript,function,object,ecmascript-6,Javascript,Function,Object,Ecmascript 6,罗马尼亚的问候, 给定一个游戏列表,这些对象看起来像: { "id": 112814, "matches": "123", "tries": "11" } 返回这样一个对象 { "totalMatches": m, "totalTries": y } 其中m是所有游戏的所有匹配的总和 t是所有游戏的所有尝试的总和 input = [ {"id": 1,"matches": "123","tries": "11"}, {

罗马尼亚的问候,

给定一个游戏列表,这些对象看起来像:

  {
    "id": 112814,
    "matches": "123",
    "tries": "11"
  }
返回这样一个对象

  {
    "totalMatches": m,
    "totalTries": y
  }
其中m是所有游戏的所有匹配的总和 t是所有游戏的所有尝试的总和

 input = [
    {"id": 1,"matches": "123","tries": "11"},
    {"id": 2,"matches": "1","tries": "1"},
    {"id": 3,"matches": "2","tries": "5"}
  ]

  output = {
    matches: 126,
    tries: 17
  }
我目前拥有的:

function countStats(list) {


  return {
    matches: 0,
    tries: 0
  };
}
我认为我需要做的是:

  • 遍历所有对象
  • 使用全局变量计算匹配项(m)和尝试项(y)
  • 分别返回m,y
  • 我被要求做什么,我不知道怎么做: 1.使用reduce函数 2.而是返回一个对象

    非常感谢您的建议,您可以利用:

    const输入=[
    {“id”:1,“匹配”:“123”,“尝试”:“11”},
    {“id”:2,“匹配”:“1”,“尝试”:“1”},
    {“id”:3,“匹配”:“2”,“尝试”:“5”}
    ];
    const result=input.reduce((结果、条目)=>{
    result.matches+=+entry.matches;
    result.trys+=+entry.trys;
    返回结果;
    },{匹配:0,尝试:0});
    控制台日志(结果)您可以利用:

    const输入=[
    {“id”:1,“匹配”:“123”,“尝试”:“11”},
    {“id”:2,“匹配”:“1”,“尝试”:“1”},
    {“id”:3,“匹配”:“2”,“尝试”:“5”}
    ];
    const result=input.reduce((结果、条目)=>{
    result.matches+=+entry.matches;
    result.trys+=+entry.trys;
    返回结果;
    },{匹配:0,尝试:0});
    控制台日志(结果)应在以下字段上使用:

    function countStats (list) {
      return {
        matches: input.reduce((a, b) => +a + +b.matches, 0),
        tries: input.reduce((a, b) => +a + +b.tries, 0)
      }
    }
    
    请参阅将字符串作为数字求和的语法糖,即应在以下字段中使用的
    +a++b

    function countStats (list) {
      return {
        matches: input.reduce((a, b) => +a + +b.matches, 0),
        tries: input.reduce((a, b) => +a + +b.tries, 0)
      }
    }
    

    请参见将字符串作为数字求和的语法糖,即
    +a++b

    您可以为结果获取一个对象,并获取用于稍后迭代数组的键和用于添加相同键值的键

    var-input=[{id:1,匹配:“123”,尝试:“11”},{id:2,匹配:“1”,尝试:“1”},{id:3,匹配:“2”,尝试:“5”},
    输出={匹配:0,尝试:0},
    keys=对象。keys(输出);
    input.forEach(o=>keys.forEach(k=>output[k]+=+o[k]);
    
    控制台日志(输出)您可以为结果获取一个具有零值的对象,获取用于以后迭代数组的键,以及用于添加相同键值的键

    var-input=[{id:1,匹配:“123”,尝试:“11”},{id:2,匹配:“1”,尝试:“1”},{id:3,匹配:“2”,尝试:“5”},
    输出={匹配:0,尝试:0},
    keys=对象。keys(输出);
    input.forEach(o=>keys.forEach(k=>output[k]+=+o[k]);
    
    控制台日志(输出)以下是一种干净的方法:

    const游戏=[
    {id:1,匹配:'123',尝试:'11'},
    {id:2,匹配:'1',尝试:'1'},
    {id:3,匹配:'2',尝试:'5'},
    ];
    const reduced=games.reduce(
    (累加器,游戏)=>({
    totalMatches:accumulator.totalMatches+数字(game.matches),
    总尝试次数:累加器。总尝试次数+数字(游戏。尝试次数),
    }),
    {totalMatches:0,TotalTrys:0}
    );
    
    控制台日志(减少)以下是一种干净的方法:

    const游戏=[
    {id:1,匹配:'123',尝试:'11'},
    {id:2,匹配:'1',尝试:'1'},
    {id:3,匹配:'2',尝试:'5'},
    ];
    const reduced=games.reduce(
    (累加器,游戏)=>({
    totalMatches:accumulator.totalMatches+数字(game.matches),
    总尝试次数:累加器。总尝试次数+数字(游戏。尝试次数),
    }),
    {totalMatches:0,TotalTrys:0}
    );
    控制台日志(减少)
    
    输入=[
    {“id”:1,“匹配”:“123”,“尝试”:“11”},
    {“id”:2,“匹配”:“1”,“尝试”:“1”},
    {“id”:3,“匹配”:“2”,“尝试”:“5”}
    ]
    让totalMatches=0;
    设totaltrys=0;
    让output=input.reduce({totalMatches,totaltrytes},{matches,trytes})=>{
    totalMatches+=+匹配项;
    总尝试次数+=+尝试次数;
    返回{totalMatches,TotalTrys}
    },{totalMatches:0,TotalTrys:0});
    console.log(输出)
    输入=[
    {“id”:1,“匹配”:“123”,“尝试”:“11”},
    {“id”:2,“匹配”:“1”,“尝试”:“1”},
    {“id”:3,“匹配”:“2”,“尝试”:“5”}
    ]
    让totalMatches=0;
    设totaltrys=0;
    让output=input.reduce({totalMatches,totaltrytes},{matches,trytes})=>{
    totalMatches+=+匹配项;
    总尝试次数+=+尝试次数;
    返回{totalMatches,TotalTrys}
    },{totalMatches:0,TotalTrys:0});
    
    console.log(output)
    谢谢,这是我想要的格式。你能不能把参数a,b指的是什么分解一下?结尾0是什么?
    a
    b
    是内联匿名函数的变量。他们的名字确实是武断的。零是偏移值,表示我们的运算(和)的初始值为零的情况。通常可以省略它,但是对于这个特定的情况,它是必需的,否则我们将以一个字符串开始,这将搞乱结果。谢谢,这是我所想到的格式。你能不能把参数a,b指的是什么分解一下?结尾0是什么?
    a
    b
    是内联匿名函数的变量。他们的名字确实是武断的。零是偏移值,表示我们的运算(和)的初始值为零的情况。通常可以省略它,但是对于这个特定的情况,它是必需的,否则我们将从一个字符串开始,这将搞乱结果。