2016-01-11 5 views
-5

Я действительно хочу преобразовать объект в массив, но мои коды не работают.Преобразование объектов в массив в javascript

data = "errors": { 
    "user": { 
    "name": "empty" 
    }, 
    { 
    "length": "exceeds" 
    }, 

    "title": { 
    "name": "empty" 
    }, 
    { 
    "length": "exceeds" 
    } 
} 

Теперь я хочу, чтобы сделать их:

data = ["empty", "exceeds", "empty", "exceeds"]; 

Что я сделал до сих пор:

var arr = Object.keys(data[i].data.errors).map(function(k) { 
    return data[i].data.errors[k] 
}); 

console.log(arr); 

Но выход не то, что я ожидал. Пожалуйста помоги. Спасибо большое.

+5

Пожалуйста, исправьте примеры кода. JS не поддерживает типографские котировки. – Tomalak

+1

Здесь больше ошибок, чем только опечатки. Пожалуйста, взгляните на это: http://www.sscce.org/ –

+0

Я только что удалил опечатки и изменил на «». – qazzu

ответ

1

Если вы всегда знаете, ключи от внутренних объектов будут name и length короткий путь может быть:

var out = Object.keys(data.errors).reduce(function (p, c) { 
    return p.concat([data.errors[c].name, data.errors[c].length]); 
}, []); 

DEMO