Javascript-谁最重? (使用相同的键名访问数组对象中的所有值)

时间:2018-08-21 20:56:48

标签: javascript arrays javascript-objects

let info = [
  {
    name: 'Harry Potter',
    weight: 160,
    hobby: 'quidditch',
  },
  {
    name: 'Hermione Granger',
    weight: 130,
    hobby: 'reading',
  }
  {
    name: 'Ronald Weasley',
    weight: 185,
    hobby: 'quidditch',
  }
]

我如何找出谁最重?

到目前为止的思想过程-编写将执行以下操作的代码:

  • 列出所有重量
  • 从大到小的顺序排列它们
  • 选择最大[0]的数字的索引

到目前为止,我还停留在第一步。我可以访问一个字符的特定权重,但不能访问所有权重。我已经尝试过以下代码:

const char_weight = data['weight']
console.log(char_weight)

但是它返回的是“未定义”。

2 个答案:

答案 0 :(得分:3)

有很多方法可以做到这一点。您可以简单地对数组进行排序,然后选择最上面的条目。

let info = [ { name: 'Harry Potter', weight: 160, hobby: 'quidditch', }, { name: 'Hermione Granger', weight: 130, hobby: 'reading', }, { name: 'Ronald Weasley', weight: 185, hobby: 'quidditch', } ]

console.log(info.sort((x,y) => y.weight - x.weight)[0])

根据反馈进行更新。

答案 1 :(得分:0)

您可以遍历数组并获取具有最大权重值的对象的索引。通过索引,您还可以访问对象的其他属性。此方法不会更改数组。

let index = 0;

for (let i = 1; i < info.length; i++) {
    if (info[index].weight < info[i].weight) {
        index = i;
    }
}

现在,将具有最大权重值的对象的索引存储在index中,您可以访问以下属性:info [index] .name,info [index] .weight等