将对象关键帧和属性转换为数组


function objectToArray(obj) {
var newArr = [];
var myKeys = Object.keys(obj);
var myValues = Object.values(obj);
for(var i=0; i<myKeys.length; i++) {
newArr.push(myKeys[i]);
}
return newArr;
}
objectToArray({
D: 1,
B: 2,
C: 3
});

// Should output  [["D", 1], ["B", 2], ["C", 3]]

你好,正在尝试按照指定的方式将这些数组中的每个数组的值放入。我一直得到[D1']而不是[D',1]。知道如何正确放置这些值吗?

您必须推送一个数组,如下所示:[myKeys[i], myValues[i]]

function objectToArray(obj) {
var newArr = [];
var myKeys = Object.keys(obj);
var myValues = Object.values(obj);
for (var i = 0; i < myKeys.length; i++) {
newArr.push([myKeys[i], myValues[i]]);
}
return newArr;
}
const result = objectToArray({
D: 1,
B: 2,
C: 3,
});
console.log(result); // [["D", 1], ["B", 2], ["C", 3]]

基于@Manas Khandelwal,如果你有密钥,你可以直接从obj中获得值,所以我会这样做:

function objectToArray(obj) {
var newArr = [];
for (let key in obj) {
newArr.push([key, obj[key]]);
}
return newArr;
}
const result = objectToArray({
D: 1,
B: 2,
C: 3,
});
console.log(result);

您正在查找Object.entries:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/entries.这个函数正是你想要的。

最新更新