将数组的排序字符串分组到对象数组中

Group a sorted strings of array into an array of objects

提问人:aparna s 提问时间:5/11/2023 最后编辑:aparna s 更新时间:5/16/2023 访问量:71

问:

输入 = ['abc', 'def','ghi', 'bac', 'fed', 'hgi', 'cab', 'edf', 'igh']

输出 = [{'abc', 'bac', 'cab'},{ 'def', 'edf', 'fed'}, {'ghi', 'hgi', 'igh'}]

需要对数组进行排序并按对象数组对它们进行分组

JavaScript 数组 String 对象

评论

5赞 Flash Thunder 5/11/2023
{'abc', 'bac', 'acb'}不是正确的对象 - 它需要键和值
0赞 Dan Macak 5/11/2023
是否要求对象恰好具有 3 个属性?难道不应该让每个对象只有 1 个属性和文本,然后对它们进行排序吗?
0赞 aparna s 5/11/2023
是的,这就是我们需要将相同字符的字符串按排序顺序推送到新数组中的一组对象中的要求
0赞 Srushti Shah 5/11/2023
首先,output不是一个有效的数组,你需要为output做一个合适的数组
1赞 CBroe 5/11/2023
分组到数组中的项目(而不是您要求的无效对象):拆分/排序/联接 jsfiddle.net/948bgt0k/1 将项目的所有字母按字母顺序排列,然后将其用作对象键,以便于分组。然后,Object.values() 再次从这些对象属性中获取一个数组。

答:

0赞 Matin 5/16/2023 #1

有一种方法可以按键对对象进行排序;

const obj = {a: 'abc', c: 'ghi', b: 'def'};

const sortedObj = Object.keys(obj)
  .sort()
  .reduce((accumulator, key) => {
    accumulator[key] = obj[key];

    return accumulator;
  }, {});

console.log(sortedObj);
// Object { a: "abc", b: "def", c: "ghi" }

从技术上讲,对象需要显式键,这就是将它们与具有隐式键的数组区分开来的原因。数组是一种对象。只有空对象没有键。这很重要,因为可用于对元素进行排序的数组方法不适用于对象。

您能详细介绍一下上下文以及您计划如何使用此对象吗?任何更多信息都可以帮助我们了解更多,从而为您提供帮助!