Поэтому у меня есть объект JSON [{"key1":"val1","key2":"val2"},{"key1":"val1","key2":"val2"}]

И мне по сути нужно удалить ключи, чтобы вывод был похож на [["val1","val2"],["val1","val2"]] в Javascript.

Если не считать итерации по массиву, а затем итерации по всем свойствам и сопоставления с новым объектом JSON, есть ли какой-нибудь способ, которым я могу удалить ключи из объекта и превратить значения в список в массиве?

Пожалуйста, без объединения строк / регулярных выражений.

Спасибо.

2
OOPMichael 6 Янв 2017 в 23:28

5 ответов

Лучший ответ

Использование ES2015 (ES6)

const arr = [{"key1":"val1","key2":"val2"},{"key1":"val1","key2":"val2"}]
arr.map(o => Object.values(o));

Видеть

4
BrunoLM 6 Янв 2017 в 20:30

Если вам все еще нужна поддержка старого браузера - предварительно ES6

var arr = [{"key1":"val1","key2":"val2"},{"key1":"val1","key2":"val2"}];

arr = arr.map(function(o){
   var a = [];
   for(var i in o){
      a.push(o[i])
   }
   return a;
});
console.log(arr);
0
Adam Azad 6 Янв 2017 в 20:31

Вам нужно перебрать объект и создать новые массивы.

for (var i = 0; i < yourobject.length; i++) {
    var myArray = [];
    for (var key in yourobject) {
         myArray.push(yourobject[key]
    }
    console.log(myArray)
}
0
Lockless 6 Янв 2017 в 20:33

Это должно сделать это:

const arr = [{"key1":"val1","key2":"val2"},{"key1":"val1","key2":"val2"}];

const newArr = arr.map(obj => Object.values(obj));
0
KMA 7 Янв 2017 в 04:45