栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

如何通过Javascript中的值对关联数组进行排序?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

如何通过Javascript中的值对关联数组进行排序?

Javascript没有您所想到的“关联数组”。取而代之的是,您仅具有使用类似于数组的语法设置对象属性的能力(如您的示例),并且具有遍历对象属性的能力。

这样做的结果是无法保证对属性进行迭代的 顺序 ,因此没有什么比对它们更好的了。相反,您需要将对象属性转换为“
true”数组(确实可以保证顺序)。这是一个代码片段,用于将对象转换为两个元组的数组(两个元素的数组),按照您的描述对其进行排序,然后对其进行迭代:

var tuples = [];for (var key in obj) tuples.push([key, obj[key]]);tuples.sort(function(a, b) {    a = a[1];    b = b[1];    return a < b ? -1 : (a > b ? 1 : 0);});for (var i = 0; i < tuples.length; i++) {    var key = tuples[i][0];    var value = tuples[i][1];    // do something with key and value}

您可能会发现将其包装在需要回调的函数中更为自然:

function bySortedValue(obj, callback, context) {  var tuples = [];  for (var key in obj) tuples.push([key, obj[key]]);  tuples.sort(function(a, b) {    return a[1] < b[1] ? 1 : a[1] > b[1] ? -1 : 0  });  var length = tuples.length;  while (length--) callback.call(context, tuples[length][0], tuples[length][1]);}bySortedValue({  foo: 1,  bar: 7,  baz: 3}, function(key, value) {  document.getElementById('res').innerHTML += `${key}: ${value}<br>`});<p id='res'>Result:<br/><br/><p>


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/398770.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号