写一个 function,它遍历一个对象数组(第一个参数)并返回一个包含相匹配的属性-值对(第二个参数)的所有对象的数组。如果返回的数组中包含 source 对象的属性-值对,那么此对象的每一个属性-值对都必须存在于 collection 的对象中。

例如,如果第一个参数是 [{ first: "Romeo", last: "Montague" }, { first: "Mercutio", last: null }, { first: "Tybalt", last: "Capulet" }],第二个参数是 { last: "Capulet" },那么你必须从数组(第一个参数)返回其中的第三个对象,因为它包含了作为第二个参数传递的属性-值对。

如果你被难住了,记得使用 Read-Search-Ask编写你自己的代码。

这是一些对你有帮助的资源:

  • Global Object
  • Object.hasOwnProperty()
  • Object.keys()
首先需要遍历数组中的对象,遍历对象需要用for-in
接下来需要判断第二个数组中的键值对是否存在第一个参数中,hasOwnProperty的作用就体现出来了,如果相等就存进数组arr
function where(collection, source) {var arr = [];// What's in a name?for(var j in  source){}for(var i in collection){if(collection[i].hasOwnProperty(j)&&collection[i][j]===source[j]){arr.push(collection[i]);}}return arr;
}where([{ first: "Romeo", last: "Montague" }, { first: "Mercutio", last: null }, { first: "Tybalt", last: "Capulet" }], { last: "Capulet" });

/**

转载于:https://www.cnblogs.com/meng2017/p/7505679.html

Where art thou相关推荐

  1. FCC 中级算法题 Where art thou

    Where art thou 写一个 function,它遍历一个对象数组(第一个参数)并返回一个包含相匹配的属性-值对(第二个参数)的所有对象的数组.如果返回的数组中包含 source 对象的属性- ...

  2. Linux shell 学习笔记(10)— 处理用户输入(命令行读取参数、读取用户输入、超时处理)

    1. 命令行参数 向 shell 脚本传递数据的最基本方法是使用命令行参数.命令行参数允许在运行脚本时向命令行添加数据. $ ./addem 10 30 本例向脚本 addem 传递了两个命令行参数( ...

  3. shell脚本编程之处理用户输入

    技术交流QQ群:1027579432,欢迎你的加入! 本教程使用Linux发行版Centos7.0系统,请您注意~ 1.命令行参数 bash shell提供了一些不同的方法来从用户处获得数据,包括命令 ...

  4. 聚焦3D地形编程第五章GeomipMapping for the CLOD

    第二部分高级地形编程 聚焦3D地形编程第五章GeomipMapping for the CLOD 译者: 神杀中龙 邵小宁 microsoftxiao@163.com 翻译的烂请见谅 原著 <F ...

  5. xmpp with openfire之一 xmpp and openfire

    XMPP   百度百科 1.什么是XMPP ? XMPP(可扩展消息处理现场协议)是基于可扩展标记语言(XML)的协议,它用于即时消息(IM)以及在线现场探测.它在促进服务器之间的准即时操作.这个协议 ...

  6. FreeCodeCamp 中级算法(个人向)

    freecodecamp 中级算法地址戳这里 Sum All Numbers in a Range 我们会传递给你一个包含两个数字的数组.返回这两个数字和它们之间所有数字的和. 1 function ...

  7. 一次彻底搞透协议设计(没做过通讯底层也没有关系)!

    系统设计,协议先行. 大部分人不了解协议的设计细节,更多使用已有协议进行应用层设计,例如: (1)使用HTTP,设计get/post/cookie参数,以及json包格式: (2)使用dubbo,而不 ...

  8. find与grep命令简介及正则表达式(转)

    find与grep命令简介及正则表达式 两个更为有用的命令和正则表达式 在我们开始学习新的Shell编程知识之前,我们先来看一下两个更为有用的两个命令,这两个命令虽然并不是Shell的一部分,但是在进 ...

  9. python数据的格式输出_python

    本文主要由Python String Format 一文翻译整理而来,在python中使用 % 进行格式化字符串由来已久,不过在python2.7+ 的版本中引入了新的格式化字符串的方法.虽然%号的方 ...

最新文章

  1. 票据自动处理系统著名研究团队
  2. python3 进度条_详细介绍Python进度条tqdm的使用
  3. vue绑定html的class属性的方法
  4. react mysql增删改查_react增删改查
  5. 资产配置决策系统的MATLAB实现
  6. C++、C#写的WebService相互调用
  7. 到底IPv4有多少个地址
  8. IC inbox toolbar button的determine逻辑
  9. wincc客户机打开服务器文件通讯不上,wincc客户机连不上服务器
  10. 通用职责分配软件原则之8-中介原则
  11. [蓝桥杯历届试题] 国庆星期日
  12. Android 微信分享与QQ分享功能
  13. SAP 客户主数据的合作伙伴配置和客户账户组的创建
  14. 中断调用与子程序调用
  15. 【轮子】有权二部图中的最大匹配、最小匹配python轮子
  16. php 点击电话号码直接拨打,在网站上为手机用户提供”点击拨打电话”功能
  17. 专访 | Apache Pulsar PMC 成员翟佳:社区的信任最重要
  18. 怎样设置excel中自动调整行高、列宽?
  19. P1199(NOIP2010 普及组)三国游戏 题解
  20. Mosquitto简介及搭建

热门文章

  1. 使用Windows Live Writer发布日志
  2. 混合云存储组合拳:基于云存储网关与混合云备份的OSS数据备份方案
  3. 第二次作业--线性表
  4. Web访问RabbitMQ
  5. Web开发经验谈之F12开发者工具/Web调试[利刃篇]
  6. 工业级别sd卡存贮slc mlc tlc
  7. 详测 Generics Collections TList (6): Reverse、TrimExcess
  8. rsync 模块同步失败
  9. div布局的几点体会
  10. 记一次Java进程突然消失问题