不容易啊,终于把第二题搞出来了。有没有其他更好的思路啊? var find = function(origin) { //your code are here... return { where: function(findObj) { //条件对象 const results = []; let key = Object.keys(findObj); let rexp = findObj[key]; origin.forEach((item, index) => { if (rexp.test(item[key])) { results.push(item); } }); return { orderBy: function(key, order) { results.sort((item1, item2) => { if (order == 'desc&(8707)#39;) { return item2[key] - item1[key]; } else { return item1[key] - item2[key]; } }) return results; } } } } }