gpt4 book ai didi

javascript - 检索数组内的元素编号

转载 作者:行者123 更新时间:2023-12-02 13:49:23 27 4
gpt4 key购买 nike

我有一个包含如下数据的数组。

var objects = [
{
"rowid": 1,
"Hostname": "11 Com"
},
{
"rowid": 2,
"Hostname": "11 UMi"
},
{
"rowid": 3,
"Hostname": "14 And"
},
{
"rowid": 5,
"Hostname": "23 A"
}];

我正在尝试获取每个对象的元素编号的位置。每个对象都包含自己的“行 ID”,这基本上就是我当前使用此函数检索其元素位置的方法:

 function findCorrespondingNumber(hostname) { 
function search(am, im) {
if (am.Hostname === hostname) {
index = im; return true; }
} var index;
if (objects.some(search)) {
return objects[index]['rowid'];
}
}
var correspNumb = findCorrespondingNumber(name) - 1;
var fiff = objects[correspNumb]["Hostname"];

数据集的问题是数字有时会跳过序列。 rowid 3 后面跟着 5,而不是应有的 4。这会导致进一步的代码出现问题,因此我需要它,以便将 rowid 5 的对象读取为第四个对象。我该如何编写该代码?

最佳答案

我认为您正在寻找 Array#findIndex ,这是 ES2015 中添加的。它接受一个谓词函数并返回该谓词返回真值的第一个条目的索引(如果从未返回,则返回 -1):

var index = objects.findIndex(function(entry) {
return entry.Hostname == hostname;
});

这将为您提供基于 0 的索引(因此,在您的示例中为 0 - 3)。如果您想要基于 1 的索引(您的示例为 1 - 4;您确实说过“对于第三个条目返回 3”),请在结果中添加 1。

还有密切相关的 Array#find ,它执行相同的操作,但返回实际条目:

var entry = objects.find(function(entry) {
return entry.Hostname == hostname;
});

两者都是新的,但都可以填充/填充。

关于javascript - 检索数组内的元素编号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41124220/

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