我需要创建一个javascript函数,它接受键/值对的对象 一个过滤函数,它接受一个参数并返回一个布尔值。该函数应该从过滤器( key )为真的对象返回一个包含 values 的数组。
所以我会有一个功能:
function filterValuesByKeys(obj, filter){
//returns array
}
我最常坚持的是基于键循环对象,如果键匹配/满足参数,则将值添加到数组中。我可以打印所有键,但我不知道如何在循环中单独获取每个键。
答案 0 :(得分:1)
在循环浏览JavaScript对象时,您需要小心您要完成的任务。使用for (var key in obj)
将遍历所有键,以及对象原型链中的任何键。
只获取对象"拥有"的一种方法属性使用for / in,但随后检查
for (var key in obj) {
if (obj.hasOwnProperty(key)) {
//do stuff
}
}
传统循环的另一个选择是使用Object.keys(obj)
来获取obj
自己的密钥。然后,您可以定期循环遍历该数组,甚至可以在其上使用forEach
。
var keys = Object.keys(obj);
keys.forEach(function(key) {
// do stuff
});
使用本机功能数组方法还有其他一些巧妙的方法,比如reduce
。我会把它留给你。
答案 1 :(得分:0)
MFMailComposeViewControllerDelegate