javascript - 使用javascript根据数组的其他对象中的其他键值对验证重复键值对的对象数组
问题描述
let currentFruit = "apple"
let Array = [{fruit:"apple",locale:"US"},
{fruit:"orange",locale:"US"},
{fruit:"banana",locale:"US"},
{fruit:"apple",locale:"US"},
{fruit:"orange",locale:"IT"},
{fruit:"apple",locale:"IT"},
{fruit:"banana",locale:"IT"},
{fruit:"orange",locale:"IT"}
{fruit:"apple",locale:"IT"}]
从其区域设置为“美国”的对象中获取“currentFruit”。我想验证“currentFruit”是否存在于具有相同语言环境“US”的“Array”中以将标志设置为“true”,否则如果“currentFruit”存在于具有不同语言环境的“Array”中将为“false”。
for (let i = 0; i < Array.length; i++) {
if (Array[i]["fruit"].toString().toLowerCase() === currentFruit.toString().toLowerCase()) {
this.uniqueFruit = true;
break;
} else {
this.uniqueFruit = false;
}
}
上面的代码评估对象数组中是否存在“currentFruit”。但是,我如何验证“currentFruit”是否存在于具有相同区域设置“US”的数组中。
解决方案
您可以将比较添加locale
到您的循环中,如下所示:
let currentFruit = "apple"
let Array = [{fruit:"apple",locale:"US"},
{fruit:"orange",locale:"US"},
{fruit:"banana",locale:"US"},
{fruit:"apple",locale:"US"},
{fruit:"orange",locale:"IT"},
{fruit:"apple",locale:"IT"},
{fruit:"banana",locale:"IT"},
{fruit:"orange",locale:"IT"},
{fruit:"apple",locale:"IT"}]
console.log(validate(Array,currentFruit,"US"));
console.log(validate(Array,currentFruit,"FR"));
function validate(arr, currentFruit, locale){
for(let i = 0; i < arr.length; i++)
if(arr[i]["fruit"].toLowerCase() == currentFruit.toLowerCase() && arr[i]["locale"] == locale)
return true;
return false;
}
推荐阅读
- express - 尝试呈现翡翠模板时无法读取未定义的属性“用户名”
- c# - 从 Visual Studio 2017 使用 OData 服务
- agile - 如何在 Tuleap 中恢复看板仪表板?
- python - 贝塞尔曲线曲面
- sql - 如何从批处理文件执行 Sql 查询
- odoo - odoo - 解释 @api.multi - 记录集
- javascript - 括号中的构造函数调用时未定义Javascript原型函数
- wordpress - WordPress中的文件路径不是默认值
- c# - 如何在 WPF 中激活 UserControl 的所有父级(即一个选项卡)
- sql - 使用 sql 查询从数据库中计算百分比(SQL Management Studio 2012)?