это можно сделать довольно просто:

я есть объект:

var obj = {
    "Mike": 24,
    "Peter": 23,
    "Simon": 33,
    "Tom": 12,
    "Frank": 31
};

Я хочу создать массив, который содержит значения объекта. Ключи (названия ключей) можно игнорировать:

[24, 23, 33, 12, 31]

Порядок значений НЕ важен!

Одно из решений (очевидно) будет иметь функцию, которая принимает значения и помещает их в массив:

var arr = valuesToArray(obj); 

Я приму такую ​​функцию как ответ. Тем не менее, я был бы более рад, если бы была функция API (ECMAScript, jQuery, специфичная для браузера, ...), которая могла бы сделать это. Что-то подобное существует?

Ответы на вопрос(9)

Решение Вопроса

использованиеObject.values он вернет массив.

Object.values(obj) // [24, 23, 33, 12, 31]

о, что вы предлагаете, и может быть «сокращено» до более умных версий функционального программирования в зависимости от вашей библиотеки, но все они будут иметь одинаковую эффективность.

function valuesToArray(obj) {
    var result = [];
    for (var key in obj) {
       if (obj.hasOwnProperty(key)) {
           result.push(obj[key]);
       }
    }
    return result;
}

С помощьюbob.js это можно сделать довольно просто:

function valuesToArray(obj) {
    return bob.collections.extensions.toArray.call(obj);
}

так как@quixoto предлагает, но только для записи, и так как вы ищетевстроенный Кстати, вы можете связать новые методы ECMAScript 5Object.keys а такжеArray.prototype.map, доступно напоследние браузеры:

function valuesToArray(obj) {
  return Object.keys(obj).map(function (key) { return obj[key]; });
}
 jAndy05 янв. 2011 г., 20:00
ES5 выглядит весело, нет?
 Šime Vidas05 янв. 2011 г., 20:22
Хорошо :) Это, вероятно, настолько мало, насколько это возможно.
 Vexter14 июл. 2016 г., 12:38
Или даже короче в ES6:Object.keys(obj).map(key => obj[key])

са. Я не рекомендую его использовать на самом деле.; О)

Пример: http://jsfiddle.net/WGpXX/

var arr = eval( '[' +
    JSON.stringify(obj)
    .slice(1,-1)
    .replace(/"[^"]+":/g,'')
    + ']');

технически работает в этом простом случае.

 Šime Vidas05 янв. 2011 г., 20:18
Отлично! Именно то, что я искал! ... просто шучу :)

функция «значения» прототипа), но на самом деле они просто обертывают вокруг функции, которая зацикливается и возвращает значения объекта.

http://www.prototypejs.org/api/object/values

Попробуй это:

var obj = {     "Mike": 24,     "Peter": 23,     "Simon": 33,     "Tom": 12,     "Frank": 31 } ;
    var arr = []
    for(var a in obj)
    {
        var val = obj[a];
        arr.push(val);
    }
alert(arr.length)

Используя Underscore lib try:

function valuesToArray(o) {
    return _.pairs(o);
}

var obj = {
    "Mike": 24,
    "Peter": 23
    //...
    },
    result = valuesToArray(obj);

Тогда результат [["Mike", 24], ["Peter", 23]];

Подробнее о методе пар здесь:http://underscorejs.org/#pairs

С jQuery вы можете использовать каждую функцию:

var obj = {
    "Mike": 24,
    "Peter": 23,
    "Simon": 33,
    "Tom": 12,
    "Frank": 31
}

myArray=new Array();
$.each(obj, function(key, value) { 
  myArray.push(value);
});

Ваш ответ на вопрос