FCC_Intermediate Algorithm Scripting_Where art thou

1.任务及要求

Where art thou


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

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

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

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

测试数据:

 where([{ first: "Romeo", last: "Montague" }, { first: "Mercutio", last: null }, { first: "Tybalt", last: "Capulet" }], { last: "Capulet" }) 应该返回 [{ first: "Tybalt", last: "Capulet" }]

 where([{ "a": 1 }, { "a": 1 }, { "a": 1, "b": 2 }], { "a": 1 }) 应该返回 [{ "a": 1 }, { "a": 1 }, { "a": 1, "b": 2 }]

where([{ "a": 1, "b": 2 }, { "a": 1 }, { "a": 1, "b": 2, "c": 2 }], { "a": 1, "b": 2 }) 应该返回 [{ "a": 1, "b": 2 }, { "a": 1, "b": 2, "c": 2 }]

where([{ "a": 1, "b": 2 }, { "a": 1 }, { "a": 1, "b": 2, "c": 2 }], { "a": 1, "c": 2 }) 应该返回 [{ "a": 1, "b": 2, "c": 2 }]

2.参考的解法

function where(collection, source) {
  var arr = [];

// 参考资料
/*
版权声明:本文为CSDN博主「晨阳再升」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_31347831/article/details/55673509
*/ 

var keys = Object.keys(source);
  arr = collection.filter(function(item){
    for(var i = 0;i<keys.length;i++){
      if(!item.hasOwnProperty(keys[i]) || item[keys[i]] !== source[keys[i]])
        return false;
    }
    return true;
  });

  return arr;
}

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

原文地址:https://www.cnblogs.com/yoursatan/p/12402063.html

时间: 2024-10-11 05:54:28

FCC_Intermediate Algorithm Scripting_Where art thou的相关文章

Where art thou

写一个 function,它遍历一个对象数组(第一个参数)并返回一个包含相匹配的属性-值对(第二个参数)的所有对象的数组.如果返回的数组中包含 source 对象的属性-值对,那么此对象的每一个属性-值对都必须存在于 collection 的对象中. 例如,如果第一个参数是 [{ first: "Romeo", last: "Montague" }, { first: "Mercutio", last: null }, { first: &quo

FCC_Intermediate Algorithm Scripting_Diff Two Arrays

1.任务及要求 Diff Two Arrays 比较两个数组,然后返回一个新数组,该数组的元素为两个给定数组中所有独有的数组元素.换言之,返回两个数组的差异. 如果你被难住了,记得使用 Read-Search-Ask尝试与他人结伴编程.编写你自己的代码. 这是一些对你有帮助的资源: Comparison Operators Array.slice() Array.filter() Array.indexOf() Array.concat() 测试数据: diff([1, 2, 3, 5], [1

FCC_Intermediate Algorithm Scripting_Search and Replace

1.任务及要求 Search and Replace 使用给定的参数对句子执行一次查找和替换,然后返回新句子. 第一个参数是将要对其执行查找和替换的句子. 第二个参数是将被替换掉的单词(替换前的单词). 第三个参数用于替换第二个参数(替换后的单词). 注意:替换时保持原单词的大小写.例如,如果你想用单词 "dog" 替换单词 "Book" ,你应该替换成 "Dog". 如果你被难住了,记得使用 Read-Search-Ask尝试与他人结伴编程.编

FCC_Intermediate Algorithm Scripting_Sum All Numbers in a Range

1.任务及要求 Sum All Numbers in a Range 我们会传递给你一个包含两个数字的数组.返回这两个数字和它们之间所有数字的和. 最小的数字并非总在最前面. 如果你被难住了,记得使用 Read-Search-Ask.尝试与他人结伴编程.编写你自己的代码. 这是一些对你有帮助的资源: Math.max() Math.min() Array.reduce() 测试数据:  sumAll([1, 4]) 应该返回一个数字. sumAll([1, 4]) 应该返回 10. sumAll

Where art thou-freecodecamp算法题目

Where art thou 1.要求 写一个 function,它遍历一个对象数组(第一个参数)并返回一个包含相匹配的属性-值对(第二个参数)的所有对象的数组. 如果返回的数组中包含 source 对象的属性-值对,那么此对象的每一个属性-值对都必须存在于 collection 的对象中. 2.思路 用Object.keys(source)取出source的属性 利用Object.keys()在for循环中遍历collection所有子元素的属性,设定mark标记变量,一层循环中初始为true

概率dp ZOJ 3640

Help Me Escape Time Limit:2000MS     Memory Limit:32768KB     64bit IO Format:%lld & %llu Submit Status Practice ZOJ 3640 Appoint description:  System Crawler  (2014-10-22) Description Background     If thou doest well, shalt thou not be accepted? an

ZOJ3640-Help Me Escape

Help Me Escape Time Limit: 2 Seconds      Memory Limit: 32768 KB Background     If thou doest well, shalt thou not be accepted? and if thou doest not well, sin lieth at the door. And unto thee shall be his desire, and thou shalt rule over him. And Ca

zoj 3640 Help Me Escape (概率dp 递归求期望)

题目链接 Help Me Escape Time Limit: 2 Seconds      Memory Limit: 32768 KB Background     If thou doest well, shalt thou not be accepted? and if thou doest not well, sin lieth at the door. And unto thee shall be his desire, and thou shalt rule over him.  

zoj 3640 Help Me Escape

Help Me Escapehttp://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=4808 Time Limit: 2 Seconds      Memory Limit: 32768 KB Background     If thou doest well, shalt thou not be accepted? and if thou doest not well, sin lieth at the door. And unto