【发布时间】:2017-01-06 19:11:54
【问题描述】:
所以我有一个对象数组,例如:
var a = {user: [
{year:'1950',name:'Joe'},
{year:'19XX',name:'Chris'},
{year:'1980',name:'Bob'},
{year:'1955',name:'Jan'}
]}
我使用这些数据来模板化包含年份和名称的简单元素。 我还可以通过 select 元素选择对这些数据进行排序,然后使用 sorted 按排序顺序再次对其进行模板化。 (bob,chris,jan,joe) 或年份。 但我的问题从年份开始。
我需要继续使用一个简单的插件 jsonQ (http://ignitersworld.com/lab/jsonQ.html) 要编辑和排序数据,并且需要使年份的数据实际上与 desc 或 asc 略有不同。
第一次我需要编辑各个部分的数据,比如年份(19XX 应该变成“Pre 1950”):
//inside ajax success function
var dataObj = jsonQ(data);
dataObj.find('year').value(function (data){
if (data == '19XX') {
return 'pre 1953'
} else {
return data;
}
});
现在我将有一个需要排序的最终产品数据集。
var orderedData = dataObj.sort('year', {'order' : 'ASC'});
但这给了我数据:
{
user: [
{year:'1950',name:'Joe'},
{year:'1955',name:'Jan'},
{year:'1980',name:'Bob'},
{year:'Pre 1950',name:'Chris'}
]
}
我需要的是要返回的数据:
{
user: [
{year:'Pre 1950',name:'Chris'},
{year:'1950',name:'Joe'},
{year:'1955',name:'Jan'},
{year:'1980',name:'Bob'}
]
}
有什么建议吗?
【问题讨论】:
-
您需要定义自己的比较函数。实际上 P 在字典上比任何数字都大。
标签: javascript arrays json sorting