2015-09-18 4 views
2

У меня есть следующий массив:JavaScript: создать массив на основе массива объектов

var k = { 
    a: 67576567, 
    b: 567657, 
    c: "some", 
    d: [ 
     {src:"b", id:1}, 
     {src:"c", id:2}, 
     {src:"d", id:3} 
    ] 
}; 

Я ищу способ, чтобы получить следующий массив без использования для:

["b", "c", "d"] 

I попытался использовать функцию фильтра, но всегда возвращал весь объект:

var filtered = k.d.filter(function(value) { 
    return value.src; 
}); 

console.log(filtered); 

Есть ли способ сделать это?

ответ

3

Вы использовали неправильную функцию. Что вам нужно Array.map

var arr = k.d.map(function(value) { 
    return value.src; 
}); 

Array.map используется для итерации и вывода нового массива на основе возвращаемого значения функции обратного вызова, а Array.filter просто фильтрует существующий массив на воображаемой логическое значение, которое будет возвращено в функцию обратного вызова.

+0

ofc! Спасибо! – lolol

+0

@lolol: p рад помочь вам. : D –

Смежные вопросы