gpt4 book ai didi

javascript - 根据字符串对对象数组进行排序

转载 作者:行者123 更新时间:2023-12-03 08:35:13 25 4
gpt4 key购买 nike

假设我们有一个像这样的数组

var a = [
{ name: 'Tom', surname: 'TestAsIvanov' },
{ name: 'Kate', surname: 'Ivanova' },
{ name: 'John', surname: 'Alivanov' },
{ name: 'Ivan', surname: 'Ivanov' }
]

我需要根据提供的字符串按姓氏字段对该数组进行排序,例如:

  1. 对于'iva',模式数组应按如下方式排序
var newA = [
{ name: 'Ivan', surname: 'Ivanov' },
{ name: 'Kate', surname: 'Ivanova' },
{ name: 'John', surname: 'Alivanov' },
{ name: 'Tom', surname: 'TestAsIvanov' },
]
  • 对于'a',模式数组应按如下方式排序
  • var newA = [
    { name: 'John', surname: 'Alivanov' },
    { name: 'Ivan', surname: 'Ivanov' },
    { name: 'Kate', surname: 'Ivanova' },
    { name: 'Tom', surname: 'TestAsIvanov' },
    ]

    因此数组应按提供的字符串模式排序。如何实现这一点?

    最佳答案

    我为此制作了一个简单的排序脚本。我不知道这是否是最好的方法,因为我必须使用两种 sort() 方法,一种按字母顺序排序( taken from here ),另一种模拟 LIKE 'string% '(与 SQL 相比)获取您的条件:

    var queryString = "iva";

    a = a.sort(function(a, b) {
    var s1 = a.surname.toUpperCase().indexOf(queryString.toUpperCase());
    var s2 = b.surname.toUpperCase().indexOf(queryString.toUpperCase());

    return (s1 > -1 && s1 > s2);
    });

    Fiddle with full code

    至少它适用于您提供的两个示例,但我不确定这是否是您所需要的。

    关于javascript - 根据字符串对对象数组进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33234246/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com