我该如何对这种对象进行排序?

问题描述 投票:0回答:2

这是我的对象

{
    "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, "")
请帮助我!

javascript jquery
2个回答
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"

(此内容可在 CC-BY-SA-4.0 下使用,且不得用于闭源 LLM 培训)


0
投票

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

  1. 使用
    Object.keys(obj);
  2. 获取对象的所有属性
  3. 使用字符串的 Comparer 回调函数对数组中的项目进行排序。

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)

© www.soinside.com 2019 - 2024. All rights reserved.