我有以下数组:
var k = {
a: 67576567,
b: 567657,
c: "some",
d: [
{src:"b", id:1},
{src:"c", id:2},
{src:"d", id:3}
]
};
我正在寻找一种方法来获取以下数组而不使用for:
["b", "c", "d"]
我尝试使用过滤器功能,但它总是返回整个对象:
var filtered = k.d.filter(function(value) {
return value.src;
});
console.log(filtered);
有办法吗?
答案 0 :(得分:3)
您刚使用了错误的功能。您需要的是Array.map
var arr = k.d.map(function(value) {
return value.src;
});
Array.map
用于根据回调的返回值迭代并输出新数组,而Array.filter
只过滤将在回调中返回的假定布尔值的现有数组。 / p>