当我在我的observable数组中添加10个以上的值时,我得到了错误的索引值,当我试图获取像observableArray.indexOf(this)这样的当前对象时。所以我创建了新的变量索引值并生成如下例子。但是在输入时我想按降序排序我的可观察数组。所以我想做一些类似下面的例子。
我有对象列表,其值如下所示
sort($a);
我想要像
这样的结果 1,20
2,40
3,10
4,50
我想根据knockout observable中数字的降序对索引值进行排序。
答案 0 :(得分:0)
var obj = [{
index: 1,
value: 20
}, {
index: 2,
value: 40
}, {
index: 3,
value: 10
}, {
index: 4,
value: 50
}];
var sortedArr = obj.map(function(el) {
return el.value;
}).sort(function(a, b) {
return b - a
});
var mapped = obj.map(function(el) {
var index = sortedArr.indexOf(el.value) + 1;
el.index = index;
return el;
});
console.log(JSON.stringify(mapped,null,4));