Я пытаюсь преобразовать литерал объекта в массив массивов с помощью функции.Object to Array (массив массивов)
Использование двух объектов выборки у меня есть, конечный результат я ищу будет:
[ ["ugh","grr"] , ["foo", "bar"] , ["blah" , 138] ]
из obj1
[ "shambala","walawala"] , ["foofighter","Barstool"] , ["blahblah",1382342453] ]
из obj2
var obj1 = {
ugh: "grr",
foo: "Bar",
blah: 138
};
var obj2 = {
shambala: "walawala",
foofighter: "Barstool",
blahblah: 1382342453
};
var piece1 = Object.keys(obj1);
var piece2 = Object.values(obj1);
var result = [ ];
for (var i = 0; i < piece1.length; i++) {
result.push([piece1[i] , piece2[i]])
}
console.log(result)
Из того, что я выше, Мне удалось достичь:
[ ["ugh","grr"] , ["foo", "bar"] , ["blah" , 138] ]
от obj1
Но я не понимаю, как достичь такого же результата с помощью функции.
Это похоже на простую вещь.
function objToArray(objectLiteral) {
var piece1 = Object.keys(objectLiteral);
var piece2 = Object.values(objectLiteral);
var result = [ ];
for (var i = 0; i < piece1.length; i++) {
return result.push([piece1[i] , piece2[i]])
}
}
console.log(objToArray(obj1))
Это лучшее, что я могу сделать, но я продолжаю получать 1, и я не знаю, почему. Другие попытки Я просто закончил с неопределенным.
[ 'Массив # push'] (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/push) возвращает новый длина массива после того, как вы нажали на него элемент. – 4castle