输出对象中值大于2的key的数组
var data = {a: 1, b: 2, c: 3, d: 4};
Object.keys(data).filter(function(x) { return 1;})
期待输出:[“c”,”d”]
filter()方法
返回的数组元素是调用的数组的一个子集。
例:
var a = [1, 2, 3, 4];
small = a.filter(function(x) {
return x > 2
});//[3,4]
Object.keys()方法
返回一个数组,这个数组由对象中可枚举的自有属性的名称组成。
例:
var data = {a: 1, b: 2, c: 3, d: 4};
var arr = Object.keys(data);
console.log(arr);//[ 'a', 'b', 'c', 'd' ]
所以原题可以改写为:
var data = {a: 1, b: 2, c: 3, d: 4};
var arr = Object.keys(data);
arr.filter(function(x) {
return data[x] > 2;
});
其中x表示数组arr中的元素,比如"c",而data["c"]取得对象data的c属性3,3>2所以x="c"满足条件是返回数组的一部分