gpt4 book ai didi

javascript - 函数,返回最后一个值等于某个值的对象。 (JavaScript)

转载 作者:行者123 更新时间:2023-12-01 02:03:16 25 4
gpt4 key购买 nike

我想要一个函数来检查数组中的每个对象是否与对象中的值相同。

但我不想返回所有符合此条件的对象,也不想返回第一个,我只想返回最后一个对象,其中 name = array[i].name

var allInfo = [
{name: "Olaf", lastname: "Kranz", age:33},
{name: "Mark", lastname: "Alien", age:21},
{name: "Cindy", lastname: "Sunsi", age:65},
{name: "Anna", lastname: "Pitter", age:20},
{name: "Piet", lastname: "Schmitz", age:29}
];

var name = 'Cindy';
document.write(getIfNameIsAvailable(name));


function getIfNameIsAvailable(name) {
for (i = allInfo.length; i >= 0; i--) {
if (allInfo[i].name == name) {
return allInfo[i].lastname;
break;
}
}
};

最佳答案

三个问题:

  1. 数组索引是 length - 10,而不是 length0,这就是您的代码的原因第一次执行时抛出错误。
  2. return 之后不需要 break,因为 return 会退出函数(因此也会退出循环)。
  3. 确实需要声明变量,包括像i这样的循环计数器。如果你不这样做,你就会得到我所说的The Horror of Implicit Globals .

使用 - 1,删除 break,并声明 i - 我还将 Mark Allen 的名字改为 Cindy,这样我们就可以真正看到它正在捕获最后一个辛迪:

var allInfo = [
{name: "Olaf", lastname: "Kranz", age:33},
{name: "Cindy", lastname: "Alien", age:21},
{name: "Cindy", lastname: "Sunsi", age:65},
{name: "Anna", lastname: "Pitter", age:20},
{name: "Piet", lastname: "Schmitz", age:29}
];

var name = 'Cindy';
document.write(getIfNameIsAvailable(name));

function getIfNameIsAvailable(name) {
for (var i = allInfo.length - 1; i >= 0; i--) {
if (allInfo[i].name == name) {
return allInfo[i].lastname;
}
}
};

关于javascript - 函数,返回最后一个值等于某个值的对象。 (JavaScript),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50347518/

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