码迷,mamicode.com
首页 > 编程语言 > 详细

javascript-对象搜索算法挑战

时间:2018-08-17 11:15:03      阅读:210      评论:0      收藏:0      [点我收藏+]

标签:[]   prope   object   pre   for   get   count   ast   OLE   

对象搜索算法挑战

function where(collection, source) {
var arr = [];
var status = null;
// What‘s in a name?
for (var i = 0; i < collection.length; i++) {
    for(var imp in source){
        if (source[imp] !== collection[i][imp]) {
            status = 0;
            break;
        }
        status = 1;
    }
    if(status == 1){
        arr.push(collection[i]);
    }
}
return arr;
}

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

这样写会不会比使用下面这种好点

function where(collection, source) 
{ var arr = [], index = 0; // What‘s in a name? 
// console.log(Object.getOwnPropertyNames(source).length); 
//获取对象属性个数 
for (; index < collection.length; index++) { 
    for (var key in collection[index]) { 
        var count = 0; 
        for (var key2 in source) { 
            if (collection[index].hasOwnProperty(key2)) { 
                if (source[key2] == collection[index][key2]) { 
                    count++; 
                } 
                if (count == Object.getOwnPropertyNames(source).length && key == key2) { 
                    arr.push(collection[index]); 
                } 
            } 
        } 
    } 
} 
return arr; 
}

 

javascript-对象搜索算法挑战

标签:[]   prope   object   pre   for   get   count   ast   OLE   

原文地址:https://www.cnblogs.com/wwjchina/p/9491890.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!