使用 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;
}