【问题标题】:I want to return the array where I found the value, which I got from the filter我想返回从过滤器中获得的值的数组
【发布时间】:2020-04-23 00:53:59
【问题描述】:

https://www.freecodecamp.org/learn/javascript-algorithms-and-data-structures/intermediate-algorithm-scripting/wherefore-art-thou

我想返回从过滤器中找到值的数组。我从过滤器中得到了一个值,但我想与对象进行比较:

// collection
[
    { first: "Romeo", last: "Montague" },
    { first: "Mercutio", last: null },
    { first: "Tybalt", last: "Capulet" },
]

// source
{ last: "Capulet" }

我最后从过滤器得到:“Capulet”。我需要在我得到它的地方找到整个密钥。

function whatIsInAName(collection, source) {
    var arr = [];
    // Only change code below this line
    let newArr = source.filter((element) => collection.includes(...collection));

    for (let i = 0; i < source.length; i++) {
        if (newArr == source[i]) {
            return source[i];
        }
        //console.log(collection[0])
    }

    console.log(newArr);
}

【问题讨论】:

    标签: javascript arrays get


    【解决方案1】:

    您可以使用Array.prototype.filterObject.entriesArray.prototype.every 执行此操作,以得出以下简洁的解决方案。

    function whatIsInAName(collection, source) {
        return collection.filter(el => {
            return Object.entries(source).every(([key, value]) => {
                return el[key] == value
            })
        })
    }
    

    【讨论】:

      【解决方案2】:
       function whatIsInAName(collection, source) {
        var srcKeys = Object.keys(source);
      
      return collection.filter(function(obj) {
      for (var i = 0; i < srcKeys.length; i++) {
        if (
          !obj.hasOwnProperty(srcKeys[i]) ||
          obj[srcKeys[i]] !== source[srcKeys[i]]
        ) {
          return false;
        }
      }
      return true;
      });
      }
      

      【讨论】:

      • 此外,在每个 freeCodeCamp 问题上,“运行测试”下方都有一个部分,其中包含“获取帮助”下拉菜单,单击该部分,然后...“获取提示”链接.您可以看到一些提示,如果您愿意,最终可以看到解决方案; )
      • 这很有用!
      猜你喜欢
      • 2020-03-14
      • 1970-01-01
      • 2017-09-29
      • 1970-01-01
      • 2017-04-13
      • 1970-01-01
      • 2021-08-12
      • 2021-10-09
      • 2023-01-25
      相关资源
      最近更新 更多