【问题标题】:Validate an array of objects for duplicate key value pair depending on other key value pair among other objects of array using javascript使用javascript根据数组的其他对象中的其他键值对验证重复键值对的对象数组
【发布时间】:2020-06-11 09:39:19
【问题描述】:
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”的数组中。

【问题讨论】:

  • 请添加想要的结果。
  • @NinaScholz 结果是设置标志。我的意思是“uniqueFruit”在条件下为真或假

标签: javascript arrays validation key-value


【解决方案1】:

您可以将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;
}

【讨论】:

    【解决方案2】:

    您可以为想要的水果添加一个属性,并根据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);

    【讨论】:

      猜你喜欢
      • 2022-12-01
      • 2021-08-17
      • 1970-01-01
      • 1970-01-01
      • 2018-04-15
      • 2023-04-04
      • 2021-03-21
      • 2021-05-17
      • 2020-10-14
      相关资源
      最近更新 更多