例如,我有:

var Data = [
  { id_list: 1, name: 'Nick', token: '312312' },
  { id_list: 2, name: 'John', token: '123123' },
]

然后,我想把这个物体比方说sort/reverse乘以name.然后我想要这样的东西:

var Data = [
  { id_list: 2, name: 'John', token: '123123' },
  { id_list: 1, name: 'Nick', token: '312312' },
]

现在我想知道属性为name='John'的对象的索引,以获得属性标记的值.

我怎么才能解决这个问题呢?

推荐答案

正如其他答案所建议的那样,循环遍历数组可能是最好的方法.但我会把它放在它自己的函数中,让它更抽象一点:

function findWithAttr(array, attr, value) {
    for(var i = 0; i < array.length; i += 1) {
        if(array[i][attr] === value) {
            return i;
        }
    }
    return -1;
}

var Data = [
    {id_list: 2, name: 'John', token: '123123'},
    {id_list: 1, name: 'Nick', token: '312312'}
];

有了这个,你不仅可以找到哪个包含"John",还可以找到哪个包含标记"312312312":

findWithAttr(Data, 'name', 'John'); // returns 0
findWithAttr(Data, 'token', '312312'); // returns 1
findWithAttr(Data, 'id_list', '10'); // returns -1

函数在未找到时返回-1,因此它遵循与Array.prototype.indexOf()相同的构造.

Javascript相关问答推荐

单击更新页面的按钮后,页面刷新;测试/断言超时,有两个标题,但没有一个标题

我可以使用CSS有效地实现最大宽度=100%和最大高度=100%,而无需父母有明确的/固定的宽度和高度,替代方法吗?

Next.js(react)使用moment或不使用日期和时间格式

如何在 cypress 中使用静态嵌套循环

无法使用单击按钮时的useState将数据从一个页面传递到另一个页面

如何修复我的数据表,以使stateSave正常工作?

JQuery Click事件不适用于动态创建的按钮

用于在路径之间移动图像的查询

当我在Reaction中创建一个输入列表时,我的输入行为异常

如何在DYGRAPS中更改鼠标事件和键盘输入

Vaadin定制组件-保持对javascrip变量的访问

以编程方式聚焦的链接将被聚焦,但样式不适用

有没有一种直接的方法可以深度嵌套在一个JavaScript对象中?

WebSocketException:远程方在未完成关闭握手的情况下关闭了WebSocket连接.&#三十九岁;

如何在一个对象Java脚本中获取不同键的重复值?

我在哪里添加过滤器值到这个函数?

无法在Adyen自定义卡安全字段创建中使用自定义占位符

找不到处于状态的联系人

通过ng-绑定-html使用插入的HTML中的函数

如何根据获取的对象数量动态生成状态变量