【发布时间】:2019-12-01 16:42:56
【问题描述】:
我有一个名为“Inventory”的对象数组。每个库存对象都有一个 order 属性,我按升序对它进行数字排序。每个库存对象中都有一组车辆。在这个数组中存在一个模型属性,它也是一个数组。
inventory: [
{
category: American,
order: 1,
vehicles: [
{
instock: 'yes',
model: [
{
lang: 'en-US'
title: 'mustang'
}
]
}
],
[
{
instock: 'no',
model: [
{
lang: 'en-US'
title: 'viper'
}
]
}
],
[
{
instock: 'yes',
model: [
{
lang: 'en-US'
title: 'camaro'
}
]
}
]
}
]
我正在尝试编写一种方法,该方法根据“顺序”保持库存数组的整体排序,但根据模型数组中“标题”属性的字母顺序对“车辆”数组进行排序。
到目前为止,我有这种方法,它只对“库存”对象的顺序进行排序。我不确定我是否可以以某种方式链接一个加法排序方法,然后对车辆数组进行排序。
const sortedInventory = inventory.sort((a, b) => {
if (a.order < b.order) return -1;
if (a.order > b.order) return 1;
return 0;
})
【问题讨论】:
-
inventory.vehicles.sort(someFunction),完全一样,对外部数组没有影响。 -
我是否链接另一个排序方法并向下钻取适当的数组?举个例子会有所帮助。
-
vehicles数组完全独立于外部数组;您必须遍历每个inventory对象并对vehicles数组进行一一排序;你不能同时对它们进行排序。可能是我不明白你想做什么。 -
是的,这就是我想要完成的目标
-
你能补充一下预期结果的样子吗?
标签: javascript arrays sorting object vue.js