JavaScript 数组到对象?

标签 javascript arrays object

<分区>

编写一个名为“convertObjectToList”的函数,它将对象字面量转换为数组数组,如下所示: 参数:

{
  name: 'Holly',
  age: 35,
  role: 'producer'
}

返回值:

[['name', 'Holly'], ['age', 35], ['role', 'producer']]

请注意,您的函数应该能够像这样处理任何对象,而不仅仅是上面提供的确切示例。

例如,它还应该能够处理这个,或任何其他包含简单键值对的对象。

{
  species: 'canine',
  name: 'Bowser',
  weight: 45
}

我试图获取对象的大小,然后通过在 for 循环中一次为数组 [number] 分配一个值和一个键将其转换为数组,你能告诉我如何做到这一点吗,当我调用sizex(obj1);我得到 3,但是当我调用 convertObjectToList(obj1);我得到空数组:[]。

我大约 10 天前学习了 JS,在学习过程中,有些任务仍然有点困惑。欢迎任何帮助。

这是我现在的代码:

var names = [];
var values = [];

var sizex = function(obj) {
    var num = 0;
    var lol;
    for (lol in obj) {
        if (obj.hasOwnProperty(lol)) num++;
    }
    return num;
};

function convertObjectToList(obj) {
    // your code here



    for (j = 0; j < sizex; j++) {

        for (var name in obj) {
            names[j] = name;

            values[j] = obj[name];
        }
    }
    return names.concat(values);
}


var obj1 = {
    name: 'Holly',
    age: 35,
    role: 'producer'
}

sizex(obj1);
convertObjectToList(obj1);

谢谢你们,两个代码都有效,第二个代码更简单,但网站给我一个错误,说“converts_some_other_data = false”,第一个代码完全有效。再次感谢。

最佳答案

您可以使用 Object.keys()map()

var data = { name: 'Holly', age: 35, role: 'producer' }

function toArray(obj) {
  return Object.keys(obj).map(e => [e, obj[e]])
}

console.log(toArray(data))

关于JavaScript 数组到对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41783821/

相关文章:

解析 AMF3 对象

javascript - 在循环中组合 2 个数组中的 2 个对象?

javascript - Node.js javascript - 从外部脚本服务器端调用函数

javascript - 如何追加本地存储新对象

javascript - 如何在 jquery 就绪函数中获取 URL 参数?

Java/打印包含数组的 LinkedList 节点

javascript - JavaScript 中的数字排序代码错误

java - 替换字符数组中的字符

javascript - 如何获取jquery中特定样式的第一个和最后一个值?

javascript - 打开大约 :blank window in firefox