使用 javascript 根据数组其他对象中的其他键值对验证重复键值对的对象数组
Validate an array of objects for duplicate key value pair depending on other key value pair among other objects of array using 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"}]
从区域设置为 "US" 的对象中获得 "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" 是否存在于 objects.But 的数组中,我如何验证 "currentFruit" 是否存在于具有相同语言环境 "US" 的数组中。
想要的水果可以加属性,根据locale
属性.
加属性
let currentFruit = "apple",
locale = "US",
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" }]
array.forEach(o => {
if (o.fruit !== currentFruit) return;
o.uniqueFruit = o.locale === locale;
});
console.log(array);
您可以将 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;
}
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"}]
从区域设置为 "US" 的对象中获得 "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" 是否存在于 objects.But 的数组中,我如何验证 "currentFruit" 是否存在于具有相同语言环境 "US" 的数组中。
想要的水果可以加属性,根据locale
属性.
let currentFruit = "apple",
locale = "US",
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" }]
array.forEach(o => {
if (o.fruit !== currentFruit) return;
o.uniqueFruit = o.locale === locale;
});
console.log(array);
您可以将 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;
}