按每个对象数组中的值对对象数组进行排序

时间:2019-11-02 22:30:43

标签: javascript arrays sorting object

我不确定我是否正确编写了这个问题。..我有以下对象数组:

[
 {
   foo: 'Google',
   bar: 'Bing',
   pro: [
      'One',
      'Two',
      'Three'
   ]
 },
 {
   foo: 'Random string',
   bar: 'Something',
   pro: [
      'Five'
   ]
 },
 {
   foo: 'String',
   bar: 'Game',
   pro: [
      'Ten',
      'One'
   ]
 },

 // ...

]

我需要通过pro属性对它进行排序,其中任何数组元素都包含text。数组元素的数量未知,但至少为1。

我坚持逻辑的地方:

var text = 'On';

var results = arr.sort(function(a, b) {
  // do another loop, than count and than check?
});

在此示例中,在成功执行排序功能之后,对象的顺序应变为0, 3, 23, 0, 3,因为其中有两个On

感谢您的帮助

1 个答案:

答案 0 :(得分:1)

您可以编写一个简短函数,以检查值是否以text开头,然后将其用作排序函数中pro.some()的输入,在{之前将b排序{1}}以降序排列。

a