在javascript中将json对象插入到有序数组中
我有一个~2000个对象的数组,如下格式:在javascript中将json对象插入到有序数组中,javascript,arrays,json,sorting,Javascript,Arrays,Json,Sorting,我有一个~2000个对象的数组,如下格式: [{ "$order": 2998, "text": "Rosales Glenn", "id": 375 }, { "$order": 2999, "text": "Dillard Joyce", "id": 450 }, { "$order": 3000, "text": "Maryellen Hogan", "id": 365 }, { "$order": 3002,
[{
"$order": 2998,
"text": "Rosales Glenn",
"id": 375
}, {
"$order": 2999,
"text": "Dillard Joyce",
"id": 450
}, {
"$order": 3000,
"text": "Maryellen Hogan",
"id": 365
}, {
"$order": 3002,
"text": "Jeannette Church",
"id": 207
}]
我需要以有效的方式将对象插入正确的位置:
e、 g:
假设插入新元素时不需要覆盖现有元素(没有重复的“$order”),有人知道使用$order作为键将新对象插入数组的快速算法吗?
外部库也是一个选项(如果它们支持角度)。
谢谢 看起来您无法降低拼接实现的复杂性,这取决于引擎 您可以优化的是您的搜索算法。我会选择二进制搜索
编辑以获取有关二进制搜索的更多信息,请参见,看起来您无法降低拼接实现的复杂性,这取决于引擎 您可以优化的是您的搜索算法。我会选择二进制搜索
编辑有关二进制搜索的更多信息,请参见至少您需要迭代,直到找到索引
var数组=[{“$order”:2998,“text”:“Rosales Glenn”,“id”:375},{“$order”:2999,“text”:“Dillard Joyce”,“id”:450},{“$order”:3000,“text”:“Maryellen Hogan”,“id”:365},{“$order”:3002,“text”:“Jeannette Church”,“id”:207},
插入={“$order”:3001,“文本”:“珍妮特·奇奇”,“id”:205},
指数=-1;
array.some(函数(a,i){
如果(a.$order>插入.$order){
返回true;
}
指数=i;
});
阵列拼接(索引+1,0,插入);
console.log(数组)代码>至少您需要迭代,直到找到索引
var数组=[{“$order”:2998,“text”:“Rosales Glenn”,“id”:375},{“$order”:2999,“text”:“Dillard Joyce”,“id”:450},{“$order”:3000,“text”:“Maryellen Hogan”,“id”:365},{“$order”:3002,“text”:“Jeannette Church”,“id”:207},
插入={“$order”:3001,“文本”:“珍妮特·奇奇”,“id”:205},
指数=-1;
array.some(函数(a,i){
如果(a.$order>插入.$order){
返回true;
}
指数=i;
});
阵列拼接(索引+1,0,插入);
console.log(数组)如果数组以$order=3002开头,则代码>不起作用…如果数组以$order=3002开头,则代码>不起作用。。。。
{
"$order": 3001,
"text": "Jeannette Chichi",
"id": 205
}