gpt4 book ai didi

javascript - 按 JavaScript 数组中的值查找

转载 作者:行者123 更新时间:2023-11-28 11:10:56 24 4
gpt4 key购买 nike

我有这样一个数组:

arr['key1'] = true;
arr['key2'] = true;
arr['key3'] = true;
...
arr['keyN'] = true;

如何确定是否有人输入“假”值?

最佳答案

不幸的是,直到最近,唯一的方法是循环遍历数组;如果您在基于浏览器的应用程序中使用它,您可能必须这样做。 ECMAScript 第五版(新的 JavaScript)中有新的数组功能,可以让您以稍微不同的方式执行此操作,但只有某些浏览器支持它们(我不确定它们是否一定适用)。

但是您在问题中描述的更多的是 map (或“字典”;有时称为关联数组)而不是数组(基于数字的索引事物)。在 JavaScript 中,“array”通常用于表示数字索引数组(例如,通过 []new Array 创建),“object”通常用于映射(因为所有 JavaScript 对象都是映射)。 (这可能有点令人困惑,因为数组对象。但不用担心这一点。)所以这是一个数组:

var a = ['one', 'two', 'three'];

...而这是一个对象(“ map ”、“字典”、“关联数组”):

var o = {key1: 'one', key2: 'two', key3: 'three'};

您使用非数字索引表明您实际上使用的是映射,而不是数组。搜索循环在 map 上看起来像这样:

var key, found;

found = false;
for (key in arr) {
if (arr.hasOwnProperty(key)) {
if (!arr[key]) { // <== There are alternatives, see notes below
found = true;
break;
}
}
}

我使用了 if (!arr[key]) 来检查 false 值。这实际上会在 falseundefinednull 或空字符串上停止。如果您真的非常想要 false,请改用 if (arr[key] === false)

关于javascript - 按 JavaScript 数组中的值查找,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2591606/

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