所以我有这样一个虚拟的数据对象:
var Products = {
'sku': {n:'Trampolines rain covers',v:'7Ft',l:'http://www.google.com',i:['media/cache/search/media/1151-Trampoline-jumping-mat.png','media/cache/searchSuggest/media/1151-Trampoline-jumping-mat.png','#'],r:['4','3.2','0','1','3','0','0'],p:['7.99','9.99'],d:'Some kind of description',f:'Features',b:'Benefits',s:'Specifications'},
'sku2': {n:'Icon cast adjustable dumbbell',v:'10kg',l:'http://www.google.com',i:['media/cache/search/media/1167-Single-dumbbell.png','media/cache/searchSuggest/media/1167-Single-dumbbell.png','#'],r:['4','2.5','1','0','1','0','2'],p:['7.99','9.99'],d:'Some kind of description',f:'Features',b:'Benefits',s:'Specifications'},
'sku3': {n:'Trampolines safety net & bases',v:'6Ft',l:'http://www.google.com',i:['media/cache/search/media/1195-Trampoline-safety-net.png','media/cache/searchSuggest/media/1195-Trampoline-safety-net.png','#'],r:['3','3.5','1','0','1','0','1'],p:['7.99','9.99'],d:'Some kind of description',f:'Features',b:'Benefits',s:'Specifications'},
'sku4': {n:'Andico spring for trampolines',v:'5.5 inch',l:'http://www.google.com',i:['media/cache/search/media/1166-Trampoline.png','media/cache/searchSuggest/media/1166-Trampoline.png','#'],r:['3','3.5','1','0','1','0','1'],p:['7.99','9.99'],d:'Some kind of description',f:'Features',b:'Benefits',s:'Specifications'}
}然后我有一系列skus
var skus = ['sku','sku3','sku4'];我的任务是通过sku对象属性n (多个单词的字符串/产品标题)按字母升序对数组进行排序。
我知道我应该使用.sort(ref)函数,但是我想知道函数在里面,比如:
skus.sort(function(a,b) { });但我找不出如何制定内部功能来完成工作。也许我该换种方式做这件事?
发布于 2014-02-07 15:33:59
你就快到了。在函数中,使用a和b查找Products对象上的条目,以便比较条目:
skus.sort(function(a, b) {
var an = Products[a].n,
bn = Products[b].n;
if (an === bn) {
return 0;
}
return an < bn ? -1 : 1;
});https://stackoverflow.com/questions/21631644
复制相似问题