如何用JavaScript的for-in循环按顺序访问对象属性?

更新于
2026-09-25 13:19:30
2阅读来源:SEO教程
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计355个文字,预计阅读时间需要2分钟。

如何用JavaScript的for-in循环按顺序访问对象属性?

需要遍历对象,将key+value分为两个数组,可以使用for-in循环。但获取到的对象中的属性及属性值排序是无序的,目标是要按顺序取出对象的key和value值。

如何用JavaScript的for-in循环按顺序访问对象属性?

实现效果:例如接口返回的对象。

javascriptfunction sortObjectKeys(obj) { let keys=[]; let values=[]; for (let key in obj) { if (obj.hasOwnProperty(key)) { keys.push(key); values.push(obj[key]); } } keys.sort(); let sortedResult=keys.map((key, index)=> ({ key: key, value: values[index] })); return sortedResult;}

// 示例对象let exampleObject={ c: 3, b: 2, a: 1};

// 调用函数并输出结果console.log(sortObjectKeys(exampleObject));

需要遍历对象,将key value分为两个数组,可以使用forin,但是获取到的对象中的属性及属性值排列是无序的,

目的是要按顺序取出对象中的key和value值。

实现效果:

比如接口返回的对象格式:

需要转换的格式:

实现代码:

//按序输出数据 for(let i in res.data.allMap){ this.mapTime.push(i); } this.mapTime.sort(); this.mapTime.map((item) => { this.mapValue.push(res.data.allMap[item]) })

实现思想:

还是先使用forin取出对象中的所有属性key,然后对该数组排序,再去原数组中匹配key值获取到对应的value值存放到另一个数组中即可。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持易盾网络。

本文共计355个文字,预计阅读时间需要2分钟。

如何用JavaScript的for-in循环按顺序访问对象属性?

需要遍历对象,将key+value分为两个数组,可以使用for-in循环。但获取到的对象中的属性及属性值排序是无序的,目标是要按顺序取出对象的key和value值。

如何用JavaScript的for-in循环按顺序访问对象属性?

实现效果:例如接口返回的对象。

javascriptfunction sortObjectKeys(obj) { let keys=[]; let values=[]; for (let key in obj) { if (obj.hasOwnProperty(key)) { keys.push(key); values.push(obj[key]); } } keys.sort(); let sortedResult=keys.map((key, index)=> ({ key: key, value: values[index] })); return sortedResult;}

// 示例对象let exampleObject={ c: 3, b: 2, a: 1};

// 调用函数并输出结果console.log(sortObjectKeys(exampleObject));

需要遍历对象,将key value分为两个数组,可以使用forin,但是获取到的对象中的属性及属性值排列是无序的,

目的是要按顺序取出对象中的key和value值。

实现效果:

比如接口返回的对象格式:

需要转换的格式:

实现代码:

//按序输出数据 for(let i in res.data.allMap){ this.mapTime.push(i); } this.mapTime.sort(); this.mapTime.map((item) => { this.mapValue.push(res.data.allMap[item]) })

实现思想:

还是先使用forin取出对象中的所有属性key,然后对该数组排序,再去原数组中匹配key值获取到对应的value值存放到另一个数组中即可。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持易盾网络。