根据值对对象属性进行排序[重复]

2023-12-12

我有一个对象数组:

[  
   {  
      "Accept Credit Cards":"17",
      "Take-Out":"17",
      "Alcohol":"16",
      "Caters":"10",
      "Takes Reservations":"11",
      "Smoking":"0",
      "Dogs Allowed":"1",
      "Outdoor Seating":"12",
      "Coat Check":"0",
      "Waiter Service":"14",
      "Wi-Fi":"10",
      "Good For Groups":"16",
      "Wheelchair Accessible":"13"
   }
]

我想根据值对其进行排序。所以我的结果应该是这样的:

[  
       {  
          "Accept Credit Cards":"17",
          "Take-Out":"17",
          "Alcohol":"16",
          "Good For Groups":"16",
          "Wheelchair Accessible":"13"
          AND SO ON.....

      }
]

我该怎么做?我尝试了一种。但这只是根据键排序。任何指示表示赞赏。


正如 RyanZim 在评论中提到的那样,对对象的属性进行排序并没有真正的目的。 JavaScript 不保证属性顺序,因此您不应依赖它们的顺序。但是,您可以创建一个属性数组,并根据对象中的值对它们进行排序。

const arr = [  
   {  
      "Accept Credit Cards":"17",
      "Take-Out":"17",
      "Alcohol":"16",
      "Caters":"10",
      "Takes Reservations":"11",
      "Smoking":"0",
      "Dogs Allowed":"1",
      "Outdoor Seating":"12",
      "Coat Check":"0",
      "Waiter Service":"14",
      "Wi-Fi":"10",
      "Good For Groups":"16",
      "Wheelchair Accessible":"13"
   }
];

const sorted = Object.keys(arr[0]).sort((a, b) => arr[0][b] - arr[0][a]);

sorted.forEach(x => console.log(x + ': ' + arr[0][x]));

如果您想变得更奇特并按值排序,则按字母顺序排序:

const arr = [  
   {  
      "Accept Credit Cards":"17",
      "Take-Out":"17",
      "Alcohol":"16",
      "Caters":"10",
      "Takes Reservations":"11",
      "Smoking":"0",
      "Dogs Allowed":"1",
      "Outdoor Seating":"12",
      "Coat Check":"0",
      "Waiter Service":"14",
      "Wi-Fi":"10",
      "Good For Groups":"16",
      "Wheelchair Accessible":"13"
   }
];

const sorted = Object.keys(arr[0]).sort((a, b) => {
  if (arr[0][a] > arr[0][b]) return -1;
  if (arr[0][a] < arr[0][b]) return 1;
  if (a > b) return 1;
  if (a < b) return -1;
  return 0;
});

sorted.forEach(x => console.log(x + ': ' + arr[0][x]));
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

根据值对对象属性进行排序[重复] 的相关文章

  • 是否有匹配单个字素簇的正则表达式?

    字素是用户感知的文本字符 在 unicode 中可能由多个代码点组成 From Unicode 标准附录 29 http unicode org reports tr29 Grapheme Cluster Boundaries 重要的是要认
  • 为什么电子邮件正文给出不同的输出?

    我正在尝试触发来自 Google 应用程序脚本的电子邮件 const body HtmlService createHtmlOutput A b new task b have been added to the Task Manager
  • 如何通过 JS 中的 WebPack 包提供全局 TypeScript 类

    我目前正在研究 TypeScript 我想用 TS 替换 JS 但是我有很多 JS 文件 所以我只想在 TS 中创建新类 并想在我的旧 JS 文件 atm 中使用这些类 后来我想把所有的JS都换成TS 我对 webpack 和捆绑的 js
  • jquery(或纯js)模拟按下回车键进行测试

    模拟用户按 enter 键的最佳方法是什么 element keypress 似乎不允许我传递按下的实际键 这是用于单元测试的 演示在这里 http jsfiddle net 3xTM2 var e jQuery Event keypres
  • 将字符串转换为整数数组

    我想转换以下字符串 14 2 到一个由两个整数组成的数组中 我该怎么做 现代浏览器的快速浏览器 14 2 split map Number 14 2
  • VueJS - 验证表单文件上传中的文件大小要求

    我正在使用 Bootstrap Vue 表单制作一个简单的表单 用户可以在其中上传文件 有没有办法验证使用 Vue 表单选择的文件的大小 我想阻止用户上传此类文件 我见过this https stackoverflow com questi
  • 如何检查 webgl(two.js) 的客户端性能

    我有一个使用 Three JS 的图形项目 现在我想自动检查客户端 GPU 性能并计算可以在应用程序中加载多少元素 我想到了诸如 GPU 基准测试之类的东西 看一眼stats js https github com mrdoob stats
  • 替换字符以制作国际字母(变音符号)

    我正在尝试模仿国际键盘的工作方式 如果您使用其中之一死钥匙 http en wikipedia org wiki Dead key后面跟着一个字母 它将它们组合成相应的字符 例如 输入 a会导致 and o结果是 etc 我似乎无法让我的正
  • 使用 classed("active",true) 鼠标悬停时 D3 颜色变化

    我是 js 和 D3 的新手 我已经生成了某种热图 并且想使用 D3 的 on mouseover 更改图块的颜色 我可以显式更改颜色 但想使用 CSS 活动规则 可能是一些简单的东西可以修复 任何帮助将不胜感激 完整代码如下 Thanks
  • 替换后正确的子串位置

    我有一个由用户提供的这样的函数 function replace function string return string replace smile g replace foo bar baz g text 1 我有这样的输入字符串 v
  • 使用 javascript 将文本附加到文本区域

    如何将文本列表附加到文本区域
  • 在全局范围内查找 JavaScript 函数

    有没有办法在当前活动的对象模型中搜索 JavaScript 属性 例如命名函数 Firebug 在 DOM 选项卡上显示的内容 我在 Chrome 开发人员工具中找不到直接等效项 加载页面 使用主要浏览器的通用开发人员工具 一个例子是 我搜
  • 在 X 轴刻度上渲染 HTML

    我想在 D3 图表的 x 轴上渲染 HTML 基本上 我希望轴上的每个标签都是到数据中另一列的超链接 我试过了 x domain data map function d return a href d Name a 但它根本不起作用 我得到
  • firebase 返回 onSnapshot 承诺

    我正在使用 firebase firestore 并且正在寻找一种返回快照承诺的方法 onlineUsers i want to return onSnapshot return this status database ref where
  • Javascript TypeError:无法读取未定义的属性“indexOf”

    在此代码中 我想从cart products array var cart products 17 1 19 1 18 1 var product 17 each cart products function key item if ite
  • 如何从客户端 JavaScript 调用特定的 Node.js 方法

    在我的应用程序中 我在 node js 文件中创建了许多方法 我如何从客户端 JavaScript 调用特定方法 下面是我的node js 文件 exports method1 function exports method2 functi
  • 让屏幕阅读器读取使用 JavaScript 添加的新内容

    加载网页时 屏幕阅读器 例如 OS X 中的屏幕阅读器或 Windows 上的 JAWS 中的屏幕阅读器 将读取整个页面的内容 但是假设您的页面是动态的 当用户执行操作时 新内容就会添加到页面中 为了简单起见 假设您在某个位置显示一条消息
  • 将 SVG 下载为 PNG 图像

    我想将 HTML 页面中的 SVG 元素下载为 PNG 格式 我尝试了此操作 但下载了一个空白的 PNG 图像 如何将我的 HTML SVG 下载为 PNG 我用过这个https bl ocks org biovisualize 81878
  • 如何检查令牌过期和注销用户?

    当用户单击注销按钮时 他 她可以自己注销 但是如果令牌过期 他 她就无法注销 因为在我的应用程序中 令牌在服务器端和前端都使用 当用户单击注销按钮时 如果令牌有效 则服务器和浏览器中的令牌都会被清除 当用户未注销并且他 她的令牌过期但未在浏
  • React 不适用于 Android 4.4.2 Web 视图浏览器

    React 在我的 Android 手机上不起作用 我不认为这是我的代码错误 因为即使我写的唯一内容是 p hello world p 它仍然没有显示 在 chrome 远程吊顶上查看后 这显示了 Map is not defined 以前

随机推荐