按数组顺序排列对象
Order an object from array order
我试图通过使用嵌套在JSON对象中的整数值来对其进行排序。我采取的方法是尽可能以可读的方式对传入数据进行排序。我用它创建了一个新的JSON对象:
var newDataFormat = {"route": route, "destination": destination, "countdown": countdown};
busJSON.push(newDataFormat);
然后我创建一个数组作为排序机制。它取"倒计时"整数,然后按该数字排序:
for (var i = totalStops - 1; i >= 0; i--) {
countdownArray.push(parseInt(busJSON[i].countdown));
}
countdownArray.sort(function(a,b){return a - b});
一旦我有了这些,我就有了最后一个循环,将信息推送到浏览器:
for (var i = dataMin; i < dataMax; i++) {
if (countdownArray[i] === i) {
items.push("<tr><td>" + busJSON[i].route + "</td><td>" + busJSON[i].destination + "</td><td>" + busJSON[i].countdown + "</td></tr>");
}
}
问题似乎是它没有把所有的项目都推到浏览器上,我在这里做了一个演示:
http://tfl.applied-espi.com/bus-popup/
有没有一种更正确/更有效的方法可以让我做到这一点?
数组也是一种有效的json格式,因此您可以使用
var busJSON = [];
然后你把一些对象推到它上,并想通过对象的成员来订购它们
busJSON.push({"route": route, "destination": destination, "countdown": countdown});
所以你现在有一个对象数组,正如我们所知道的,数组可以排序,所以我们按它的倒计时值排序
busJSON.sort(function(a,b){return a.countdown - b.countdown});
现在我们已经按升序对对象进行了排序,所以我们对数组中的每个元素都进行了一些操作
busJSON.forEach(function(value) {
items.push("<tr><td>" + value.route +
"</td><td>" + value.destination +
"</td><td>" + value.countdown + "</td></tr>");
});
瞧!
相关文章:
- 引用对象中的通用值
- jQuery匹配JSON对象的部分文本
- 重新排列 JavaScript 数组/对象
- 排列具有相同数据的多个对象(减少冗余)
- 创建一个生成器来迭代对象属性排列
- 按数组顺序排列对象
- 如何随机排列数组中的对象
- 按字母顺序排列 AngularJS 中对象保留键/值关联的选项
- 重新排列 JavaScript 对象
- Javascript 如何创建按顺序排列数字的对象
- 如何排列 jQuery 延迟对象
- 构造按字母顺序排列的对象数组
- 排列$scope内对象的顺序
- 如何基于字段从javascript对象中删除一行并重新排列对象
- JQuery数组重新排列JSON对象
- 使用javascript按属性和特定顺序排列对象
- 按字母顺序排列JavaScript对象中的项
- 脑筋急转弯,如何根据几个规则重新排列js对象并改变它的自定义结构
- Object.assign和对象排列之间的差异
- 如何根据属性筛选和排列对象数组