简体   繁体   English

将 object 键和属性转换为数组

[英]Transform object keys and properties into an array

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]]

Hello, Trying to put the values for each of these arrays in as specified.您好,尝试按照指定的方式输入每个 arrays 的值。 I keeping getting ['D1'] instead of ['D', 1].我不断得到 ['D1'] 而不是 ['D', 1]。 Any idea how to place these values correctly?知道如何正确放置这些值吗?

You have to push an array, like this: [myKeys[i], myValues[i]]您必须推送一个数组,如下所示: [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]]

Building on @Manas Khandelwal, you could get the value directly from the obj if you have the key, so this is how I would do it:在@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);

You are looking for Object.entries: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/entries .您正在寻找 Object.entries: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/entries This function does exactly what you are looking for.这个 function 完全符合您的要求。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM