Javascript降序排序和循环

标签 javascript

我有这个数组。我不知道如何按计数降序对用户数组进行排序,然后循环该数组。这是用 JavaScript 编写的。

    users[23423423] = { count: 5, name: "Bla Bla" }
    users[32432234] = { count: 15, name: "Etc Etc" }
    users[87686786] = { count: 30, name: "Jason" }
    users[54633683] = { count: 1, name: "Party" }
    users[68345521] = { count: 23, name: "Another name" }

users[key] - 键是 Facebook ID。

如何按计数降序对用户数组进行排序? 如何在 javascript 中循环这个数组,就像 php 中的 foreach 一样?谢谢。

最佳答案

对象属性没有任何顺序,而是对属性名称数组进行排序并按排序后的数组顺序获取元素。您可以在哪里使用 Array#sort对属性名称数组进行排序的方法。

var users = {};

users[23423423] = {
  count: 5,
  name: "Bla Bla"
}
users[32432234] = {
  count: 15,
  name: "Etc Etc"
}
users[87686786] = {
  count: 30,
  name: "Jason"
}
users[54633683] = {
  count: 1,
  name: "Party"
}
users[68345521] = {
  count: 23,
  name: "Another name"
}

var keys = Object.keys(users).sort(function(j, k) {
  return users[j].count - users[k].count;
})

console.log(keys);

console.log(keys.map(function(v) {
  return users[v];
}));

关于Javascript降序排序和循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41639586/

相关文章:

javascript - 如何使用 leaflet.js 提高将大量特征插入 map 的性能

javascript - 在 PhantomJS 中从站点上的 Ajax 请求获取状态代码

javascript - 未捕获的类型错误 : Object #<HTMLDocument> has no method 'alert'

Javascript 确认如果取消则返回 false

javascript - 使用 ember.js + kendo UI 时 Handlebars 脚本内的 HTML 不显示

javascript - 具有固定宽度侧边栏的灵活布局

javascript - 客户端通过 JS 请求 JSON 并填充 Rails View

Javascript 控制订单表单的值

javascript - 移动和桌面 View 的 Angular Controller 继承

javascript - Promise:链式超时