JavaScript:将对象转换为对象数组

标签 javascript arrays

我有成千上万的遗留代码将数组信息存储在非数组中。

例如:

container.object1 = someobject;
container.object2 = someotherobject;
container.object3 = anotherone;

我想要的是:

container.objects[1], container.objects[2], container.objects[3] etc.

名称的“对象”部分是不变的。数字部分是它应该在数组中的位置。

我该怎么做?

最佳答案

假设 object1、object2 等...是顺序的(如数组),那么您可以遍历容器对象并找到所有存在的顺序 objectN 属性并将它们添加到数组并在以下时停止循环一个不见了。

container.objects = [];  // init empty array
var i = 1;
while (container["object" + i]) {
    container.objects.push(container["object" + i]);
    i++;
}

如果您希望第一个项目 object1 位于 [1] 位置而不是更典型的 [0] 位置数组,那么您需要将一个空对象放入数组的第零个槽中以开始,因为您的示例没有 object0 项。

container.objects = [{}];  // init array with first item empty as an empty object
var i = 1;
while (container["object" + i]) {
    container.objects.push(container["object" + i]);
    i++;
}

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

相关文章:

arrays - 如何转发带有可变参数的函数?

javascript - Vue2 过渡模式不起作用

javascript - Backbone.Paginator 无限模式,带 Marionette

javascript - 如何用Javascript获取确切的 child 数量

java - 理解两个排序数组的中位数算法

PHP:在多维数组中查找字符串或返回空数组键?

Javascript 列出 1、2 和 3 可以加起来为 4 的所有方式,顺序很重要。例如, [1, 1, 1, 1] 是一种方式

javascript - 输入 javascript 验证仅在最后一个有效

JavaScript:根据条件创建二维对象数组

arrays - numpy 搜索多个值的数组,并返回它们的索引