首页 > 解决方案 > Javascript 排序对象键索引

问题描述

这是我的结构/示例:

let arrWeekdays = ['Montag', 'Dienstag', 'Mittwoch', 'Donnerstag', 'Freitag', 'Samstag'];

let obj1 = {
 'Montag' : ['test string'],
 'Dienstag' : ['test string'],
 'Mittwoch' : ['test string'],
 'Donnerstag' : ['test string'],
 'Freitag' : ['test string'],
 'Samstag' : ['test string']
}

let obj2 = {
 'Donnerstag' : ['test string'],
 'Samstag' : ['test string'],
 'Montag' : ['test string'],
 'Dienstag' : ['test string'],
 'Mittwoch' : ['test string'],
 'Freitag' : ['test string']
}


for ( key in objWeekdays ) {
  // do something
}

for in 循环中的“objectWeekdays”有时被排序为“obj1”,但有时也无序为“obj2”。

我的问题:

for in with obj1 => "Montag" 的键索引为 0

for in with obj2 => "Montag" 的键索引为 2

有没有办法在“for in”循环之前对对象键进行排序?

我想总是从 for in 循环中的“Montag”开始。

提前感谢您的任何建议或帮助.javascri

标签: javascriptsortingobject

解决方案


您可以迭代工作日数组并检查该属性是否存在以进行进一步处理。

这种方法对所有对象采取想要的顺序。

function iterate(object, days) {
    for (const day of days) {
        if (!(day in object)) continue;
        console.log(object[day]);       // processing
    }
}

// call
iterate(object1, arrWeekdays);

推荐阅读