Skip to content

[js] 第621天 js能够保证object属性的输出顺序吗?如果可以怎么做? #3359

Open
@haizhilin2013

Description

@haizhilin2013
Collaborator

第621天 js能够保证object属性的输出顺序吗?如果可以怎么做?

3+1官网

我也要出题

Activity

AlanNgaiJX

AlanNgaiJX commented on Dec 30, 2020

@AlanNgaiJX

不能保证,若需要顺序输出object属性:需要先转为数组,进行排序后再输出,这样是最安全可靠的做法。另外如果非得使用对象来保存顺序,可以考虑调整对象的数据结构如 key: value,可变为key:{value, index} 的形式。此外还可以使用另外一个对象来构建索引顺序,如dict:{ key0: 0, key1: 1...keyN: index}。

NicholasJupiter

NicholasJupiter commented on Jan 3, 2021

@NicholasJupiter

我的解决方法是:

let obj  = {item1:1, item0:0, item4:4, item3:3};
Object.keys(obj).sort((a, b)=>{
    // 获取到key最后的数字 然后进行匹配
    a = a.match(/\d*$/)[0];
    b = b.match(/\d*$/)[0];
    return a - b;
})
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    jsJavaScript

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

      Development

      No branches or pull requests

        Participants

        @haizhilin2013@NicholasJupiter@AlanNgaiJX

        Issue actions

          [js] 第621天 js能够保证object属性的输出顺序吗?如果可以怎么做? · Issue #3359 · haizlin/fe-interview