You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Swift字典数组中查找指定值是否存在?

查找数组中是否存在指定键的几种方法

嘿,这个需求很常见,我来给你分享几个实用的实现方式~先看你的数据结构:数组里的每个元素都是只含单个键值对的对象,我们要做的就是检查这些对象的键中是否包含search变量的值。

方法1:使用Array.some()(推荐)

some()是最适合这个场景的方法——它会遍历数组,只要找到一个符合条件的元素就立刻返回true,并且停止后续遍历,性能很高效。代码示例:

let someArray = [{"Andrew":"qwerty"},{"Paul":"123456"},{"Sarah":"123123"}];
let search = "Sarah";

const exists = someArray.some(obj => Object.keys(obj).includes(search));
console.log(exists); // 输出 true

简单解释下:

  • Object.keys(obj)获取当前对象的所有键(这里每个对象只有一个键)
  • includes(search)检查键集合里是否包含我们要找的目标值
  • some()只要匹配到一个符合条件的对象,就会终止遍历并返回true

方法2:使用Array.find()(兼顾查找与取值)

如果你之后还需要获取对应键的取值,可以用find()——它会返回第一个匹配条件的对象,我们再通过判断对象是否存在得到布尔结果:

const foundObj = someArray.find(obj => Object.keys(obj).includes(search));
const exists = !!foundObj; // 将对象转换成布尔值(存在则为true)
console.log(exists); // 输出 true

// 要是需要获取对应的密码,还能这样做:
if (exists) {
  console.log(foundObj[search]); // 输出 "123123"
}

方法3:手动遍历数组(基础写法)

如果你想更直观地控制遍历过程,也可以用for...of循环手动检查:

let exists = false;
for (const obj of someArray) {
  if (Object.keys(obj).includes(search)) {
    exists = true;
    break; // 找到目标后立刻跳出循环,避免多余遍历
  }
}
console.log(exists); // 输出 true

额外补充:就算你的数组对象里有多个键,这些方法也完全适用,因为Object.keys(obj)会获取对象的所有键再做匹配检查。

内容的提问来源于stack exchange,提问作者Roman Malasnyak

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.22 09:45:30