javascript - 不清楚这道题想干什么?
本文介绍了javascript - 不清楚这道题想干什么?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
问 题
请填空,输出对象中值大于2的key的数组
var data = {a:1,b:2,c:3,d:4};
Object.keys(data).filter(function(x){return______});
期待输出:['c','d']
解决方案
这道题想干什么不是很明显吗?都有个期待输出了,其实只要理解题目里代码的意思就很简单了。
// 这一句很简单不用说明
var data = {a:1,b:2,c:3,d:4};
// 下面这句一步步来看
Object.keys(data).filter(function(x){return______});
Object.keys(data)
会返回一个Object的所有key的数组,也就是这里会返回 ['a','b','c','d'] ,我们假定这里的返回值为 keys
那么接下来再看 keys.filter(function(x){return______})
可以参看MDN上的说明Array.prototype.filter()
filter() 方法使用指定的函数测试所有元素,并创建一个包含所有通过测试的元素的新数组。
这是数组的筛选方法,该方法需要传入一个回调函数,该回调函数可以有三个参数分别是 元素的值,元素的索引,被遍历的数组。
所以这里 return 后面的语句只要写一个布尔型表达式即可,然后题目要求是值大于2,那就应该是这样
// 这里的x只是key,并非valuereturn data[x] > 2;
写的比较急因为马上要去吃饭了,理解代码就好。
这篇关于javascript - 不清楚这道题想干什么?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文