gpt4 book ai didi

javascript - 在 for 循环 javascript 中使用数组内的对象

转载 作者:行者123 更新时间:2023-11-28 15:05:31 25 4
gpt4 key购买 nike

在下面的代码中,我有一个包含对象的数组,每个对象都包含另一个对象。我想做一个 for 循环,以最里面的对象内的元素之一为目标。

var myArray = [
{nemo : {type: "fish", scales: "yes"}},
{bubbles : {type: "fish", scales: "yes"}},
{jimmy : {type: "turtle", scales: "no"}}
];
function findType (array, animalType) {
var newArray = [];
for (i = 0; i < array.length; i ++){
if (array[i][*what goes here?*].type == animalType){
newArray.push(array[i]);
}
}
return newArray;
}
findType(myArray, "fish");

我遇到的问题是要达到我希望在 for 循环的每个循环中都需要知道鱼的名称(即尼莫、气泡)的水平,并且这些名称每次都不同。有什么方法可以超越这个级别进入我想要的对象?谢谢。

最佳答案

我建议稍微重构一下代码以及您的对象。相反,不要让名称指向一个对象,例如{nemo : {type: "fish", scales: "yes"}},让名称本身成为一个属性。因此,将其更改为: {name: "nemo", type: "fish", scales: "yes"} 这不仅使访问每个属性变得更容易,还使您的代码更加清晰.

这样,你的代码就变成了:

var myArray = [{name: "nemo",type: "fish", scales: "yes"}, 
{name: "bubbles",type: "fish", scales: "yes"},
{name: "jimmy",type: "turtle", scales: "no"}];


function findType (array, animalType) {
var newArray = [];
for (i = 0; i < array.length; i ++){
if (array[i].type == animalType){
newArray.push(array[i]);
}
return newArray;
}

findType(myArray, "fish");

如果您无法重构鱼对象,其他人已经提供了解决您问题的答案,而无需重构对象。

关于javascript - 在 for 循环 javascript 中使用数组内的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39103451/

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