我有两个对象数组,如下所示:
items = [{"id":"5","tobuy":"1","name":"pop"},
{"id":"6","tobuy":"1","name":"fish"},
{"id":"7","tobuy":"0","name":"soda"}]
pkgs = [{"item_id":"5","store":"Market","aisle":"3"},
{"item_id":"6","store":"Market","aisle":"2"},
{"item_id":"6","store":"Dept","aisle":"8"},
{"item_id":"7","store":"Market","aisle":"4"}]
Run Code Online (Sandbox Code Playgroud)
我正在尝试对items数组进行排序,但我想利用pkgs数组中的数据.
pkgs数组中的"item_id"字段对应于items数组中的"id"字段.
例如,我想排序:
- 首先按降序排序"tobuy"
- 然后通过"商店"
- 然后通过"过道"
- 然后通过"名字"
虽然item_id和id在两个数组之间对应,但是没有1对1的关系.可能有0个或更多pkgs对应于任何给定项目.
(如果我有一个数据库,我只会加入表,但在JavaScript中我只有两个相关的数组).
我不确定如何构建比较器函数并传入第二个数组.
谢谢你的帮助.
我有一个这样的数组:
[{
"number": "4",
"fileName": "fileXX",
"rating": {
"average": 6.4
}
}, {
"number": "3",
"fileName": "fileXX",
"rating": {
"average": 5.4
}
}, {
"number": "4",
"fileName": "fileXX",
"rating": {
"average": 5.4
}
}]
Run Code Online (Sandbox Code Playgroud)
我正在尝试使用以下条件创建一个新数组:
array.rating.average每个数字 ( array.number) 的最高评分( )输出应该是:
[{
"number": "4",
"fileName": "fileXX",
"rating": {
"average": 6.4
}
}, {
"number": "3",
"fileName": "fileXX",
"rating": {
"average": 5.4
}
}
}]
Run Code Online (Sandbox Code Playgroud)
我刚刚设法按最高评分排序:
array.sort(function(a , b) {
return a.rating.average - b.rating.average;
});
array.reverse();
Run Code Online (Sandbox Code Playgroud)
但是,现在,我只想要每个副本一个对象array.number …
我想通过2个不同的属性对对象数组进行排序.
这些是我的对象
array = [{ resVal: "25FA15", resFlow: 49, resName: "Rendimiento Tri-Seal Completo", resPhoto: "Tri-Sealseries.png", resHP: 1.5 },
{ resVal: "25FA2", resFlow: 52, resName: "Rendimiento Tri-Seal Completo", resPhoto: "Tri-Sealseries.png", resHP: 2 },
{ resVal: "45FA2", resFlow: 53, resName: "Rendimiento Hi-Cap Completo", resPhoto: "HighCapseries.png", resHP: 2 },
{ resVal: "35FA2", resFlow: 59, resName: "Rendimiento Hi-Cap Completo", resPhoto: "HighCapseries.png", resHP: 2 }]
Run Code Online (Sandbox Code Playgroud)
我想通过更高的"resFlow"值对数组进行排序,但是具有最低的"resHP"值.
我想把我的数组放到这样:
array = [{ resVal: "25FA15", resFlow: 49, resName: "Rendimiento Tri-Seal Completo", resPhoto: "Tri-Sealseries.png", resHP: 1.5 },
{ resVal: …Run Code Online (Sandbox Code Playgroud) 我试图通过属性对对象数组进行排序title.这是我正在运行的代码片段,但它没有排序任何东西.数组按原样显示.PS我看了以前类似的问题.例如,这里建议并使用我正在使用的相同方法.
javascript:
function sortLibrary() {
// var library is defined, use it in your code
// use console.log(library) to output the sorted library data
console.log("inside sort");
library.sort(function(a,b){return a.title - b.title;});
console.log(library);
}
// tail starts here
var library = [
{
author: 'Bill Gates',
title: 'The Road Ahead',
libraryID: 1254
},
{
author: 'Steve Jobs',
title: 'Walter Isaacson',
libraryID: 4264
},
{
author: 'Suzanne Collins',
title: 'Mockingjay: The Final Book of The Hunger Games',
libraryID: 3245 …Run Code Online (Sandbox Code Playgroud) 我有一个无序列表,看起来像这样:
1.1.1
1.1.1.1
1.1.2
1.10.1
1.10.2
1.2.1
1.2.2
1.2.3
1.2.4
1.20.1
1.3.1
Run Code Online (Sandbox Code Playgroud)
我想在Javascript中将其排序为"数字"顺序.
1.1.1
1.1.1.1
1.1.2
1.2.1
1.2.2
1.2.3
1.2.4
1.3.1
1.10.1
1.10.2
1.20.1
Run Code Online (Sandbox Code Playgroud)
我需要哪种功能?
我有一个这种结构的数组:
myArray = [ [<number>, [<string>] ], [<number>, [<string>] ], ... ];
Run Code Online (Sandbox Code Playgroud)
我想根据整数对数组进行排序.不幸的是,当我在myArray上调用.sort()时,它会返回一个根据字符串排序的数组.我该怎么解决这个问题?
好吧,我有一个带随机值的数组对象,Ex.
var arr = [
{ id:1001, date:"20-02-2014", Name: 'demo1' },
{ id:1004, date:"13-02-2014", Name: 'demo0' },
{ id:1000, date:"10-02-2014", Name: 'demo14' },
{ id:1004, date:"16-02-2014", Name: 'demo10' },
{ id:1006, date:"22-02-2014", Name: 'demo111' },
{ id:1003, date:"28-02-2014", Name: 'demo16' },
{ id:1000, date:"28-01-2014", Name: 'demo12' },
{ id:1004, date:"28-01-2014", Name: 'demo01' },
{ id:1000, date:"08-01-2014", Name: 'demo41' },
{ id:1006, date:"08-01-2014", Name: 'demo91' }
]
Run Code Online (Sandbox Code Playgroud)
我想首先按键id然后按键排序这个数组date,
输出:
sorted_arr = [
{"id":1000,"date":"08-01-2014","Name":"demo41"}, //group1
{"id":1000,"date":"28-01-2014","Name":"demo12"}, //group1
{"id":1000,"date":"10-02-2014","Name":"demo14"}, …Run Code Online (Sandbox Code Playgroud) 我有以下对象数组,其中键是UTC格式的日期.
Array = [{1436796000000:["Task1","Task2"],
1437400800000:["Task4","Task8"],
1436968800000: ["Task3","Task2"],
1436882400000:["Task5","Task6"]}]
Run Code Online (Sandbox Code Playgroud)
我想按键降序排序这个数组对象.因此预期的输出将跟随最新的日期将首先出现.
Array = [{1437400800000:["Task4","Task8"],
1436968800000: ["Task3","Task2"],
1436882400000:["Task5","Task6"],
1436796000000:["Task1","Task2"]}]
Run Code Online (Sandbox Code Playgroud)
我怎么能在javascript或使用underscore.js这样做?
我在任何地方都找不到使用collator.compare排序对象的任何示例。有人可以提供吗?到目前为止,我遇到的所有文档和示例都涉及到show array sorting,如下所示:
var myArray = ['1_Document', '11_Document', '2_Document'];
var collator = new Intl.Collator(undefined, {numeric: true, sensitivity: 'base'});
myArray.sort(collator.compare)
Run Code Online (Sandbox Code Playgroud)
很高兴看到它如何对像
var objs = [{name: '1_Document', size: 40}, {name: '11_Document', size: 50}, {name: '2_Document', size: 60}];
Run Code Online (Sandbox Code Playgroud) 我有这张地图,我想按"id"值排序:
{products.map(({ id, headline }) => (
<Container>
<Row key={id}>
<Col>
<p>id={id}</p>
<p>headline={headline}</p>
</Col>
</Row>
</Container>
))}
Run Code Online (Sandbox Code Playgroud)
我该怎么做?