扫码关注官方订阅号
怎么样让js的object里的值按照一个规则顺序输出?
业精于勤,荒于嬉;行成于思,毁于随。
用Object.keys()提取所有的属性按照你想要的排序方法排序好之后再遍历读取出对象的属性值。
Object.keys()
underscore 的 sortBy 能满足这个需求:http://underscorejs.org/#sortBy
var obj = { name :"coder", age : 1024, address : "segmentfault" }; var objKeys = Object.keys(obj); objKeys = objKeys.sort();//这里写所需要的规则 for(var i=0;i<objKeys.length;i++){ console.log(objKeys[i]+" : "+obj[objKeys[i]]); }
由于对象是无序的,但数组是有序的,故可以利用这一点实现题主想要的效果。
这时候如果数组的每项值都是对象的 key,循环这个数组,则可达到更改对象中值显示顺序的效果
var obj = {1:"one",2:"two",3:"three"}, arr = [2,3,1] ; //法一:数组的forEach()方法 arr.forEach(function(el){ console.log(obj[el]); }); //法二:for循环 for(var i = 0,len = arr.length; i < len; i++){ console.log(obj[arr[i]]); }; //依次输出值 //"two" //"three" //"one"
微信扫码关注PHP中文网服务号
QQ扫码加入技术交流群
扫描下载App
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
PHP学习
技术支持
返回顶部
用
Object.keys()
提取所有的属性按照你想要的排序方法排序好之后再遍历读取出对象的属性值。underscore 的 sortBy 能满足这个需求:
http://underscorejs.org/#sortBy
var obj = {
name :"coder",
age : 1024,
address : "segmentfault"
};
var objKeys = Object.keys(obj);
objKeys = objKeys.sort();//这里写所需要的规则
for(var i=0;i<objKeys.length;i++){
console.log(objKeys[i]+" : "+obj[objKeys[i]]);
}
由于对象是无序的,但数组是有序的,故可以利用这一点实现题主想要的效果。
这时候如果数组的每项值都是对象的 key,循环这个数组,则可达到更改对象中值显示顺序的效果