从对象数组中返回一个筛选后的对象数组

这还是一个数组过滤

把字符和数字元素换成了对象

这是要求


whatIsInAName([{ first: "Romeo", last: "Montague" }, { first: "Mercutio", last: null }, { first: "Tybalt", last: "Capulet" }], { last: "Capulet" }) should return [{ first: "Tybalt", last: "Capulet" }].
Passed
whatIsInAName([{ "apple": 1 }, { "apple": 1 }, { "apple": 1, "bat": 2 }], { "apple": 1 }) should return [{ "apple": 1 }, { "apple": 1 }, { "apple": 1, "bat": 2 }].
Passed
whatIsInAName([{ "apple": 1, "bat": 2 }, { "bat": 2 }, { "apple": 1, "bat": 2, "cookie": 2 }], { "apple": 1, "bat": 2 }) should return [{ "apple": 1, "bat": 2 }, { "apple": 1, "bat": 2, "cookie": 2 }].
Passed
whatIsInAName([{ "apple": 1, "bat": 2 }, { "apple": 1 }, { "apple": 1, "bat": 2, "cookie": 2 }], { "apple": 1, "cookie": 2 }) should return [{ "apple": 1, "bat": 2, "cookie": 2 }].
Passed
whatIsInAName([{ "apple": 1, "bat": 2 }, { "apple": 1 }, { "apple": 1, "bat": 2, "cookie": 2 }, { "bat":2 }], { "apple": 1, "bat": 2 }) should return [{ "apple": 1, "bat": 2 }, { "apple": 1, "bat": 2, "cookie":2 }].
Passed
whatIsInAName([{"a": 1, "b": 2, "c": 3}], {"a": 1, "b": 9999, "c": 3}) should return []

这是解决方案


function whatIsInAName(collection, source) {
  // What's in a name?
  var arr = [];
  // Only change code below this line
  let sourceKeys = Object.keys(source);
  for (let i = 0; i < collection.length; i++)
  { 
    var count = 0;//注意这个计数器,如果放在里面一个循环则没有效果
    for (let j = 0; j < sourceKeys.length; j++)
    {
      
      for (let x in collection[i])
      {
        if (x === sourceKeys[j] && collection[i][x] === source[sourceKeys[j]])
        {
          count++;
        }
      } 
    }
    if (count === sourceKeys.length)
    {
      arr.push(collection[i]);
    }
  }
  // Only change code above this line
  return arr;
}

whatIsInAName([{ first: "Romeo", last: "Montague" }, { first: "Mercutio", last: null }, { first: "Tybalt", last: "Capulet" }], { last: "Capulet" });

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 第2章 基本语法 2.1 概述 基本句法和变量 语句 JavaScript程序的执行单位为行(line),也就是一...
    悟名先生阅读 9,675评论 0 13
  • 2018.8.21 感恩父母给我生命,养育之恩不图回报 感恩金钱让我买到好吃的,每天日子过得好充足 感恩金钱带给我...
    wangqiaoyu阅读 1,300评论 0 0
  • 前些天,我一个朋友向我求助如何拒绝自己的一个追求者(相亲对象),朋友说这个追求者人很好,对她也很关心,很符合...
    鹿十姑娘阅读 1,787评论 0 0
  • 这个4月,我只想记录两件事,事实上,我也只做了这两件事。 4月,我做的最主要的一件事情就是组织起了为期一年的以“育...
    桔梗JXH阅读 2,910评论 0 1
  • 哈!第一天为了要资源七点来到会馆准备工作,老天不太给力,大早上掉雨点吹小风。不知是不是天气的原因,早上行人...
    Smile_Zhangjie阅读 1,001评论 0 3