我在角度创建了一个键值对。关键是questionId,value是baseQuestion,baseQuestion值可以为null。现在问题是在插入之后,键值对按键的升序排序。我想保持插入顺序。如果目前的实现无法做到这一点我们如何实现它。到目前为止,我的代码是
for (let i = 0; i < this.questions.length;i++){
let j= this.questions[i]['questionId'];
qnKeyValue[j]= (this.questions[i]['baseQuestion'] == undefined ?null : this.questions[i]['baseQuestion']);
}
答案 0 :(得分:0)
您可以在Angular
中使用loadash字典作为键值对*
import { Dictionary } from 'lodash';
let dic: Dictionary<number> = {};
for (let i = 0; i < this.questions.length;i++){
let j= this.questions[i]['questionId'];
dic[j] = (this.questions[i]['baseQuestion'] == undefined ?null :
this.questions[i]['baseQuestion']);;
}
但由于字典是一个哈希表,我不认为我们可以对插入顺序进行排序。 为此,您必须使用有序字典。
答案 1 :(得分:0)
您可以在Javascript中创建Ordered哈希来维护广告订单。
function makeOrderedHash() {
var keys = [];
var vals = {};
return {
push: function(k,v) {
if (!vals[k]) keys.push(k);
vals[k] = v;
},
insert: function(pos,k,v) {
if (!vals[k]) {
keys.splice(pos,0,k);
vals[k] = v;
}
},
val: function(k) {return vals[k]},
length: function(){return keys.length},
keys: function(){return keys},
values: function(){return vals}
};
};
var myHash = makeOrderedHash();