按范围对javascript中的多维关联数组进行排序
Sort Multi-dimensional associative arrays in javascript by range
我正在尝试对从API返回的多维数组进行排序,以允许人们根据节拍选择范围。
老实说,我真的卡住了我的api返回。
var myObj = [{
title: 'title one',
beats: 1
}, {
title: 'title two',
beats: 2
}, {
title: 'title three',
beats: 3
}, {
title: 'title four',
beats: 4
}, {
title: 'title five',
beats: 5
}, {
title: 'title six',
beats: 6
}, {
title: 'title seven',
beats: 7
}, {
title: 'title eight',
beats: 8
}, {
title: 'title nine',
beats: 9
}, {
title: 'title ten',
beats: 10
}];
现在我正在尝试允许用户根据节拍选择一个范围。
因此,如果他们选择1-4,它将返回。
var myObj = [{
title: 'title one',
beats: 1
}, {
title: 'title two',
beats: 2
}, {
title: 'title three',
beats: 3
}];
8-10将返回等等…
var myObj = [{
title: 'title eight',
beats: 8
}, {
title: 'title nine',
beats: 9
}, {
title: 'title ten',
beats: 10
}];
我会用什么功能来完成这项工作?如果有任何帮助,我将不胜感激?
@qubyte对如何获取Javascript对象的所有属性值(不知道键)的回答?
告诉我们如何枚举返回对象的所有值。
for (var key in obj) {
if (obj.hasOwnProperty(key)) {
var val = obj[key];
// use val
}
}
在您的示例中,返回的myObj中的每个值本身就是一个具有属性"title"answers"beats"的对象,并且您希望在整个myObj上搜索那些具有特定beats的对象。
让我们从创建一个函数开始,该函数搜索值的属性,并返回一个具有所需值的数组。
function searchByProperty(obj, property, low, high){
var found = [];
var val, prop;
for (var key in obj) {
if (obj.hasOwnProperty(key)) {
val = obj[key];
prop = val[property];
if( (prop>=low) && (prop<=high) ) found.push(val);
}
return found;
}
现在我们可以这样使用它:
searchByProperty(myObj, 'beats', 1, 4)
将返回:
[
{
title: 'title one',
beats: 1
},
{
title: 'title two',
beats: 2
},
{
title: 'title three',
beats: 3
},
{
title: 'title four',
beats: 4
}
]
由于您已经将myObj制作成了一个真实的数组,因此您可以(非常短且非常快):
function getBeatsArray(myArray, low, high) {
return myArray.filter(function(b) {
return b.beats <= high && b.beats >=low;
});
}
我做了一个函数,它的工作方式我认为你想要它
function getBeatsObj(allBeatsObj,rangeStart,rangeEnd) {
var returnObj = {};
for(var i = rangeStart; i <= rangeEnd; i++) {
returnObj[i - 1] = allBeatsObj[i - 1];
}
return returnObj;
}
相关文章:
- 多维关联数组的最后一个索引
- node.js/javascript/couchdb视图到关联数组似乎不起作用
- 具有关联数组数据集的D3.js表
- 后关联数组使用jquery ajax
- 返回一个关联数组,而不是mongoose中的文档数组
- 如何在 Angular JS 中从关联数组创建多个复选框
- 存储在变量中的关联数组中的访问键
- 如何在具有相同 ID 的 Javascript 中按排序函数对关联数组进行排序
- 在主要的JavaScript引擎中,在JavaScript关联数组(动态对象属性)中检索/插入的复杂性是多少
- 关联数组,并使用父数组d作为selection.data()的源数组
- 获取关联数组的标签
- JavaScript:如何在最接近值的关联数组中查找键
- 单击时显示关联数组的元素
- 关联数组 - 使用图像滑块显示键值
- Javascript从关联数组中查找最低数字(气泡排序方法)
- AngularJS过滤器不适用于我的数据:关联数组
- 获取关联数组中当前函数的键
- 如何按一个仍保持字母顺序的特性值(另一个特性值)对关联数组进行排序
- 正在检查JavaScript中是否存在关联数组
- 二维对象/将数组关联到三维对象Javascript中