【问题标题】:Javascript JSON - sort the array items which are objectsJavascript JSON - 对作为对象的数组项进行排序
【发布时间】:2015-02-04 20:01:34
【问题描述】:

请参考 - http://jsfiddle.net/cbe6vxgh/2/

var datax = $("#x").val();
var e = JSON.parse(datax);

要求是根据 bdate 对 JSON 数据进行排序,如 fiddle 中给出的。 排序只能在纯 javascript 中完成。

我想到了 forEach 循环和所有循环,但无法对其进行排序。

【问题讨论】:

  • 请在问题本身中包含相关代码。还有 code snippets 可以让你保留所有相同的小提琴般的功能
  • e.sort(function (a, b) { return a.bdate < b.bdate; })
  • 你有什么问题?你的数据在哪里?将您的代码放入问题中。指向外部网站的链接往往会过时。另外,既然您已经在使用 jquery,为什么要限制“纯”javascript?
  • @TheParamagneticCroissant OP 应该使用.sort() 是正确的,但比较器函数必须返回一个整数(负数、正数或零)。

标签: javascript json sorting


【解决方案1】:

试试这个:

var datax = $("#x").val();
var e = JSON.parse(datax);

function compare(a,b) {
  var da = a.birthday.split("/");
  da = new Date(da[2], da[0]-1, da[1]);
  var db = b.birthday.split("/");
  db = new Date(db[2], db[0]-1, db[1]);
  if (da < db)
     return -1;
  if (da > db)
    return 1;
  return 0;
}

e.sort(compare);
console.log(JSON.stringify(e));

http://jsfiddle.net/cbe6vxgh/8/

【讨论】:

  • @nikhilrao 现在应该可以工作了,您需要将日期字符串转换为实际日期进行比较。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2022-06-17
  • 2019-01-08
  • 2011-05-12
  • 2013-07-15
  • 1970-01-01
  • 2016-07-01
  • 2023-03-26
相关资源
最近更新 更多