javascript - map() 返回与对象的值对

标签 javascript google-apps-script

我有如下图所示的对象。

enter image description here

我想使用map()检索对象,例如

{
  "2643216":{pg:1,pt:1},
  "1304681":{pg:1,pt:1}
}

这是我的代码。

Object.keys(obj).map(function(x){
                return {obj[x].number:{'pg':obj[x].pg,'pt':obj[x].pt}}
                })

但错误可能会出现在obj[x].number处.

调试错误通知我对 : (colon) 的无知。 .

我是否犯了错误以及您可以建议的任何调整-

或者其他方式可以检索我想要的对象?

谢谢。

最佳答案

这应该可以完成工作:

function groupByNumber(data) {

  return Object
    .keys(data)
    .reduce(function(result, key) {
      var value = data[key];

      result[value.number] = { pt: value.pt, pg: value.pg };

      return result;
    }, {});
};

var data = {
  'LKB_something': { number: 1, pg: 1, pt: 5 },
  'LKB_something_else': { number: 2, pg: 1, pt: 5 },
  'LKB_something_else_1': { number: 3, pg: 1, pt: 5 },
};

console.log('result', groupByNumber(data));

<小时/>
// ES-NEXT would let you be more coincise
const groupByNumber = data => Object.values(data).reduce(
  (result, { number, ...rest }) => ({ ...result, [number]: rest }),
  {},
);

关于javascript - map() 返回与对象的值对,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57123929/

相关文章:

javascript - 使用 Google Apps Script 从对话框中的输入字段返回值到 code.gs 中的 var

javascript - 使用 Underscore/Lodash 分组和求和

javascript - 触发器的jquery返回

javascript - 将字符串添加到 div 类的子元素

javascript - Access-Control-Allow-Origin 不 checkin chrome 扩展

for-loop - 如何使谷歌表格函数将数组打印到单个单元格?

javascript - 这个 JS forEach 函数可以变得更简单或更优雅吗?

curl - UrlFetch 相当于 CURL -u "<username>:<password>"

javascript - 修改 JavaScript 对象并使用 setRowsData 写入单个单元格

google-apps-script - Google App 脚本 LDAP 访问控制