对二级阵列中的对象进行排序

Sort Objects in 2nd level array

本文关键字:对象 排序 阵列 二级      更新时间:2023-09-26

嗨,我正在想办法对此进行排序。下面是我的数组示例。

product_sort_arr = [
  [{name:'Particle'},link:value}],
  [{name:'Bio-Part112',link:value}],
  [],
  etc  . . . 
];

我希望你能把样品形象化。

到目前为止,我已经尝试过使用,但仍然不起作用。仍在尝试解决此问题。任何帮助都将是伟大的

product_sort_arr.sort(function(a, b) {
        return a.name - b.name;
})

预期回报

product_sort_arr = [
  [{name:'Bio-Part112'},link:value}],
  [{name:'Particle',link:value}],
  [],
  etc  . . . 
];

我不确定您的数组应该是什么,但现在它的定义有一些错误。这个例子正在发挥作用。我希望它能使你朝着正确的方向前进。

var product_sort_arr = [
  [{name:'Particle', link:'value'}],
    [{name:'Bio-Part112',link:'value'}],
];
product_sort_arr.sort(function(a, b) {
  if (a[0].name > b[0].name) {
    return 1;
  }
  if (a[0].name < b[0].name) {
    return -1;
  }
  return 0;
});
    for (i=0;i<product_sort_arr.length;i++) {
        console.log(product_sort_arr[i][0].name);
}

检查JSFiddle

请注意,数组是一个对象数组,因此您可以使用product_sort_arr[0][0].nameproduct_sort_arr[1][0].name 来获得名称

您的数组不是对称的,我已经创建了这个演示,它将根据name 对数组进行排序

var p = [
  [{name:'Particle',link:'valueA'}],
  [{name:'Bio-Part112',link:'valueB'}],
];
console.log(p);
p.sort(function(a,b) {
    return a[0].name > b[0].name;
});
console.log(p);