怎么样让js的object里的值按照一个规则顺序输出?

怎么样让js的object里的值按照一个规则顺序输出?

阅读 20.6k
4 个回答

Object.keys()提取所有的属性按照你想要的排序方法排序好之后再遍历读取出对象的属性值。

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"
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏