插入,删除和添加对象到数组中

时间:2017-09-01 19:31:16

标签: javascript arrays sorting

我还没有开始编码,因为我想收集我的想法并找出解决这个问题的最佳方法。

我有一个排序数组,其中包含具有类别和名称的对象。

  • 数组按类别排序(类别为A,B和C)。 A总是先放在B之前,B总是放在C之前。
  • 确定类别后,它也将按名称排序。 (A类苹果将在A类香蕉之前)

这是我想到的方法。

有一个库存类,里面有4个数组。数组将按类别(数组A,数组B,数组C和组合数组)拆分。选中类别时,它将转到正确的数组,并根据名称将内容放入正确的位置。它不是检查1个巨大的数组,而是检查较小的数组。当添加对象时,它会将数组a和b附加到组合数组中。

这将以js编码。我写这篇文章是因为我想知道我是否在正确的轨道上,或者是否有更好的逻辑来按类别和名称对数组进行排序。

2 个答案:

答案 0 :(得分:1)

您可以通过或运算符链接排序。通过js短路,这将是非常有效的,例如:

yourArray.sort((a,b)=>
      a.category.localeCompare(b.category)
   || a.name.localeCompare(b.name)
);

答案 1 :(得分:0)

对于具有相同比较机制的更多组,例如localeCompare,您可以使用带有键的数组。这很容易维护。

var keys = ['category', 'name'];

array.sort(function (a, b) {
    var v;
    return keys.some(function (k) {
        return v = a[k].localeCompare(b[k]);
    }) && v;
});