javascript - 将字符串数组与具有字符串属性的数组对象进行比较的最佳方法?

标签 javascript arrays performance properties nested-loops

我有一个对象数组,这些对象中有一个 name 属性。

const objArr = [ { name: "Avram"}, { name: "Andy"} ];

我正在从包含名称的外部源收集字符串数组。

const strArr = [ "Avram", "Andy", "Brandon"];

如果 strArr 包含的字符串不作为 objArr 中对象的属性 name 存在,我需要创建一个新对象并将其推送到 objArr

例如:objArr.push( { name: "Brandon"} );

显然,我可以使用嵌套循环,但如果可能的话我想避免这种情况。以编程方式执行此操作的最佳方法是什么?

最佳答案

像这样

const objArr = [ { name: "Avram" }, { name: "Andy" } ];

const strArr = [ "Avram",  "Andy",  "Brandon" ];

const names= objArr.map(x => x.name);

strArr.forEach(str => {
  if (! names.includes(str) ) {
    objArr.push({name: str});
  }
});

console.log(objArr);

关于javascript - 将字符串数组与具有字符串属性的数组对象进行比较的最佳方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47465037/

相关文章:

javascript - 限制用户在文本区域中粘贴最多 (40) 个字符

javascript - Javascript 中按背景颜色排列的元素数组

objective-c - Dictionary<String, Any> 与 [String : Any]

java - 尝试理解在标记重复之前 : InvalidKeyException: Illegal key size

Python/Numpy 查找长度变量跨度

javascript - js - 数组 .reduce 返回 NaN 而不是计算值

c - 我将PID放入数组中,并且valgrind告诉我超出范围或分配的内存太少

python - 使用 "if x in (y, z)"会比使用 "if x == y or x == z"更好吗?

python - 高效使用python计算汉明距离

javascript - 传递给函数的参数在 await 后消失