Where art thou-freecodecamp算法題目
阿新 • • 發佈:2018-07-12
題目 思路 mon 參數 scrip for 元素 asc nta
Where art thou
1.要求
- 寫一個 function,它遍歷一個對象數組(第一個參數)並返回一個包含相匹配的屬性-值對(第二個參數)的所有對象的數組。
- 如果返回的數組中包含 source 對象的屬性-值對,那麽此對象的每一個屬性-值對都必須存在於 collection 的對象中。
2.思路
- 用Object.keys(source)取出source的屬性
- 利用Object.keys()在for循環中遍歷collection所有子元素的屬性,設定mark標記變量,一層循環中初始為true。
- 在for循環中遇到collection子元素不含sourse屬性或者兩對應屬性值不相等時,mark變為false
- 一層循環最後,如果mark為true,就把對應collection子元素push到結果數組
3.代碼
function where(collection, source) { var arr = []; var arrj = Object.keys(source); for(var i = 0; i<collection.length; i++){ var arri = Object.keys(collection[i]); var mark = true; for (var j = 0; j < arrj.length; j++){ if (arri.indexOf(arrj[j]) === -1 || collection[i][arrj[j]] !== source[arrj[j]]) { mark =false; } } if (mark){ arr.push(collection[i]); } } // What‘s in a name? return arr; } where([{ first: "Romeo", last: "Montague" }, { first: "Mercutio", last: null }, { first: "Tybalt", last: "Capulet" }], { last: "Capulet" });
4.相關鏈接
- https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Object/keys
Where art thou-freecodecamp算法題目