Получить значения объекта без цикла

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

var input = {
  'foo': 2,
  'bar': 6,
  'baz': 4
};

Можно ли получать значения из этого объекта без его циклирования?

Можно использовать jQuery.

Ожидаемый результат:

var output = [2, 6, 4];

Ответ 2

Это просто невозможно без цикла. Нет метода Object.values() (пока), чтобы дополнить Object.keys().

До тех пор вы в основном "застреваете" с приведенной ниже конструкцией:

var values = [];

for (var k in input) {
  if (input.hasOwnProperty(k)) {
    values.push(input[k]);
  }
}

Или, в современных браузерах (но, конечно, все еще используя цикл и анонимный вызов функции):

var values = Object.getOwnPropertyNames(input).map(function(key) {
    return input[key];
});

Ответ 3

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

JSON.stringify( input ).replace(/"(.*?)"\:|\{|\}/g,'' ).split(',')

напечатайте [2, 6, 4]. Я не тестировал другие значения json

Ответ 4

Вы можете получить значения из этого объекта без цикла с помощью Object.values(), например:

var output = Object.values( input );
console.log( output );  // [2, 6, 4]

DEMO:

var input = {
  'foo': 2,
  'bar': 6,
  'baz': 4
};

var output = Object.values( input );
console.log( output );

Ответ 5

var input = {
  'foo': 2,
  'bar': 6,
  'baz': 4
};
var newArr = new Array;
$.each(input,function(key,value) {
    newArr.push(value);
});
alert(newArr)