【问题标题】:changing the structure of javascript object [closed]改变javascript对象的结构[关闭]
【发布时间】:2017-11-27 05:45:30
【问题描述】:

我当前的对象是以下形式:

[{Vol:'AB', freq:[{used:4786, avail:1319, res:249}]}
,{Vol:'CD', freq:[{used:1101, avail:412, res:674}]}]

我需要改成表格:

[{Vol:'AB', freq:{used:4786, avail:1319, res:249}}
,{Vol:'CD', freq:{used:1101, avail:412, res:674}}]

如何做到这一点。

【问题讨论】:

  • 这太琐碎了,请学习一些关于Javascript数组和对象的知识,尝试一下,如果仍然有问题,请发布
  • @GeorgeJempty 请提醒自己,在某些阶段这超出了您的编码技能。我们都必须从基础开始,并不是每个人都有让学习变得容易的支持和资源。排斥人们提出任何级别的问题都无济于事。以后请把这些类型的 cmets 留给自己。
  • @Blindman67 这个网站被太多的exact 类型的问题污染了——帮我从Javascript 对象或JSON 中得到一些东西。 OP 没有 努力,或者至少没有表现出任何努力,不仅没有编码努力,而且显然没有研究努力。所以不,在这种情况下,我不会把我的 cmets 留给自己。
  • @GeorgeJempty 如果您不批准某个帖子,则有一个反对投票按钮。您是否考虑过很多问题都是由非常年轻的人提出的,即使是非常微不足道的谴责也会产生重大影响?请始终尊重所有人。
  • @Blindman67 没有规定你不能投票(我做过)和评论。当我们试图排除关于 SO 的坏问题时,我们不能担心脆弱的自我。

标签: javascript arrays object


【解决方案1】:

试试

obj.map( s => (s.freq = s.freq[0], s) );

解释

  • 使用map 迭代数组
  • 将freq 的数组中的每一项替换为其第一项

演示

var input = [{
  Vol: 'AB',
  freq: [{
    used: 4786,
    avail: 1319,
    res: 249
  }]
}, {
  Vol: 'CD',
  freq: [{
    used: 1101,
    avail: 412,
    res: 674
  }]
}];

input = input.map(s => (s.freq = s.freq[0], s));

console.log(input);

【讨论】:

  • @gurvinder372 我喜欢语法 s => (s.freq = s.freq[0], s) 。这对我来说是新的!回调是否返回 s?
  • @Faly 是的,返回最后一个逗号后的最终表达式。
猜你喜欢
  • 2016-02-06
  • 2014-03-31
  • 2015-02-04
  • 2019-11-28
  • 2019-12-18
  • 1970-01-01
  • 1970-01-01
  • 2016-11-13
  • 1970-01-01
相关资源
最近更新 更多