js 循环对象key 放入数组顺序被改变?

pastFineData是一个顺序对象,循环根据key添加对应数据,然后组成新的数组,可是看下面的图片对象的key 顺序已经和pastFineData对象排列的顺序变了,怎样能让key顺序不变啊。

pastFineData: {
                deductionDate: '',
                resourceCode: '',
                dept: '',
                name: '',
                deductionType: '',
                //扣款标准
                deductionStandard: '',
                //扣款次数
                deductionNum: null,
                // 扣款金额
                // deductionMoney: null,
                // 备注
                remark: '',
                operatorName: ''
            }
            `const arrKey = this.pastFineKey = Object.keys(this.pastFineData);`
            
 for (var j = 0; j < cellArr[i].length; j++) {
                    // 按照顺序赋值key
                    let key = arrKey[j];
                    if (key) {
                        // 对象赋值,有值赋值,无值赋值null
                        data[key] = cellArr[i][j] ? cellArr[i][j] : 'null';
                    }
                }

image.png

阅读 5k
3 个回答

对象的 key 是没有顺序的,你仔细想想,这个顺序是没有意义的。

只是浏览器在你展开查看时给你排序了,方便你找属性,实际没有变顺序。
其实关注对象的属性顺序意义不大,不然浏览器也不会给你改了

var pastFineData = {
                deductionDate: '',
                resourceCode: '',
                dept: '',
                name: '',
                deductionType: '',
                //扣款标准
                deductionStandard: '',
                //扣款次数
                deductionNum: null,
                // 扣款金额
                // deductionMoney: null,
                // 备注
                remark: '',
                operatorName: ''
            }

console.log(pastFineData); // 展开排序了
for (var key in pastFineData) {console.log(key)}; // 实际顺序没变化

image.png为什么加反引号这是字符串?没有报错吗

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