根据特定值在数组中查找特定索引

Find a certain index in an array based on a particular value

我有两个大小相同但值不同的数组:

var1 = [1, 6, 9]

var2 = [4, 7, 3]

和另一个常规变量,var3 = null

I 运行 一个 if 语句来检查 var3(将由外部函数赋予一个值)是否等于 var1 数组中的任何元素。 例如:

if var1.includes(var3) //假设在这种情况下 returns 为真...

然后获取 var1 数组中匹配元素的索引。

然后,使用此索引号在同一索引处的第二个数组 var2 中查找,

最后,获取 var2 数组中该索引处的值


本质上,我要避免的是有一堆 if 语句,例如:

如果 (var1.includes(var3)) && var3 == 1): 在第一个索引处获取 var2 中的元素

elif (var1.includes(var3)) && var3 == 6): 在第二个索引处获取 var2 中的元素

等等等等

感谢任何建议我是新手。使用一堆 if 语句似乎是错误的,所以我觉得必须有一种更好的方法来查看一个数组内部,获取一个元素及其索引,然后在同一索引处查看另一个数组内部以获取该元素。也许字典会更容易?不太确定....

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/indexOf

Array.indexOf 可能就是您要找的。

const temp = var1.indexOf(var3);
var2[temp];

如果var3不在第一个数组中,indexOf returns -1.

您可以使用 indexOf.

var1 = [1, 6, 9]
var2 = [4, 7, 3]
var3 = 6

let index;
let secondVal

if (var1.includes(var3)) {
    index = var1.indexOf(var3)
    secondVal = var2[index]
    // should print out 7
    console.log(secondVal)
}


我有一个使用循环的答案。 javascript 中的地图功能。这将减少您的 if-else 声明

var var3=6
var var1=[1,6,9]
var var2=[4,7,3]

var1.map((element,index)=>{
    if(element==var3){
        console.log(var2[index]);
    }
})