我该如何分类这种物体呢?

时间:2017-01-18 21:11:47

标签: javascript jquery

这是我的对象

{
    "1MON": "1",
    "1TUE": "1",
    "2TUE": "2",
    "3WED": "3",
    "6FRI": "6"
}

我一直试图寻找希望得到答案但没有运气。

我想使用这些值进行排序

预期输出

{
    "1MON": "1",
    "1TUE": "1",
    "2TUE": "2",
    "3WED": "3"
}

然后,我想循环它以删除值并创建一个像1MON1TUE2TUE3WED6FRI这样的字符串。我这样做的原因是我想添加像class="class-1MON1TUE2TUE3WED6FRI"这样的HTML类,当我要删除该类中的1个插槽时,我会使用myClassAsString.replace(/1TUE/g, "")请帮助我!

2 个答案:

答案 0 :(得分:1)

JavaScript中的

Object个键没有排序,您永远不会指望它们。您需要为此行为转换为Array

const x = { "1MON": "2", "1TUE": "1", "2TUE": "2", "3WED": "3", "6FRI": "6" }

Object.entries(x)
  .sort(([,a], [,b]) => a > b)
  .map(([y]) => y)
  .join("")
//=> "1MON1TUE12TUE3WED6FRI"

答案 1 :(得分:0)

对于排序,您可以尝试这样。

  1. 使用Object.keys(obj);
  2. 获取对象的所有属性
  3. 使用字符串的Comparer回调函数对数组中的项进行排序。
  4. 
    
    var obj = {"1MON":"1","1TUE":"1","2TUE":"2","3WED":"3","6FRI":"6"};
    var allProperties = Object.keys(obj);
    var sortedResult = allProperties.sort( (first, second) => first.localeCompare(second) );
    
    console.log(sortedResult)