我有一个像下面这样的json文件。我使用的是jquery 1.10.1
var jsonData =
[
{
"data": [
{
"image": "Content/Uploads/f1d59b7e-c93a-4419-94a6-6514d1c2384.jpg",
"textstyles": {
"pricecolour": "FFF",
"checkincolour": "222"
},
"products": [
{
"product": "Product-1",
"price": "55776"
},
{
"product": "Product-2",
"price": "24776"
}
]
}
]
}
];
我使用此代码按data =>下的价格进行排序产品
function SortJsonData(prop, asc, jsonData) {
jsonData = jsonData.sort(function (a, b) {
if (asc) return (a[prop] > b[prop]);
else return (b[prop] > a[prop]);
});
return jsonData;
}
$(document).ready(function () {
SortJsonData('price', true, jsonData);
});
但不是排序,随机写。
我需要按产品json字符串的价格进行排序。我该如何编写这段代码?
答案 0 :(得分:0)
我认为以下代码行可以解决您的目的。
function sortJsonData(prop, asc, json) {
json = json.sort(function (a, b) {
if (asc)
return a[prop] - b[prop];
else
return b[prop] - a[prop];
});
return json;
}
调用下面的函数,因为你只想对要排序的JSON的产品部分进行排序,所以只将该部分传递给函数调用。
$(document).ready(function () {
sortJsonData('price',true,jsonData.data[0].products);
});
现在打印原始的jsonData。您将看到一个已排序的列表。
console.log(jsonData.data[0].products);