从 javascript 中的数组中动态获取对象
Get objects from array in javascript dynamically
我有以下代码
var obj = [];
var statuses = [];
var time ='';
statuses array has some values like
statuses[0] = [1]
statuses[1] = [0]
statuses[2] = [1]
statuses[3] = [1]
现在我想将这些值推送到 obj 数组中,这样当我这样做时
obj[0].length 应该是 5
如果我这样做 obj.push(([time, statuses])) 它给出的长度为 2
当我这样做时 obj.push(([time, statuses[0],statuses[1],statuses[2],statuses[3]]));
然后我得到 obj[0].length 的值为 5
我不想在 obj.push 中对 statuses[0]、[1] 等值进行硬编码,因为我不确定将来 statuses 数组中会出现多少值。
当然,我的状态数组会根据我从后端收到的值而增长。所以我的 obj[0].length 应该是状态数组中的对象数 + 时间对象。
例如:如果状态有 8 个值,那么我最终的 obj[0].length 应该是 9
我尝试过使用 concat 函数,但他们并不走运。
任何人都可以帮我解决如何动态实现这个问题吗?
如果我对你的理解正确,你应该将你的元素推到 obj
数组的第一个元素
var obj = [[]];
var statuses = [];
var time ='';
statuses array has some values like
statuses[0] = [1];
statuses[1] = [0];
statuses[2] = [1];
statuses[3] = [1];
// === SOLUTION ===
obj[0].push(time);
for(var i; i<statuses.length;i++)
{
obj[0].push(statuses[i]);
}
编辑:回答评论中的另一个问题
始终尝试绘制和可视化您的数组在以您要求的方式填充时的样子。
var obj = [];
var statuses = [];
var time ='';
for(var k=0;k<12;k++)
{
statuses[0] = [1];
statuses[1] = [0];
statuses[2] = [1];
statuses[3] = [1];
// === SOLUTION ===
obj.push([]);
obj[k].push(time);
for(var i; i<statuses.length;i++)
{
obj[k].push(statuses[i]);
}
}
试试这个:
var temp = [];
temp.push(time);
foreach(function(s, i, statuses) {
temp.push(s);
});
obj.push(temp);
我有以下代码
var obj = [];
var statuses = [];
var time ='';
statuses array has some values like
statuses[0] = [1]
statuses[1] = [0]
statuses[2] = [1]
statuses[3] = [1]
现在我想将这些值推送到 obj 数组中,这样当我这样做时 obj[0].length 应该是 5
如果我这样做 obj.push(([time, statuses])) 它给出的长度为 2
当我这样做时 obj.push(([time, statuses[0],statuses[1],statuses[2],statuses[3]]));
然后我得到 obj[0].length 的值为 5
我不想在 obj.push 中对 statuses[0]、[1] 等值进行硬编码,因为我不确定将来 statuses 数组中会出现多少值。
当然,我的状态数组会根据我从后端收到的值而增长。所以我的 obj[0].length 应该是状态数组中的对象数 + 时间对象。 例如:如果状态有 8 个值,那么我最终的 obj[0].length 应该是 9
我尝试过使用 concat 函数,但他们并不走运。
任何人都可以帮我解决如何动态实现这个问题吗?
如果我对你的理解正确,你应该将你的元素推到 obj
数组的第一个元素
var obj = [[]];
var statuses = [];
var time ='';
statuses array has some values like
statuses[0] = [1];
statuses[1] = [0];
statuses[2] = [1];
statuses[3] = [1];
// === SOLUTION ===
obj[0].push(time);
for(var i; i<statuses.length;i++)
{
obj[0].push(statuses[i]);
}
编辑:回答评论中的另一个问题 始终尝试绘制和可视化您的数组在以您要求的方式填充时的样子。
var obj = [];
var statuses = [];
var time ='';
for(var k=0;k<12;k++)
{
statuses[0] = [1];
statuses[1] = [0];
statuses[2] = [1];
statuses[3] = [1];
// === SOLUTION ===
obj.push([]);
obj[k].push(time);
for(var i; i<statuses.length;i++)
{
obj[k].push(statuses[i]);
}
}
试试这个:
var temp = [];
temp.push(time);
foreach(function(s, i, statuses) {
temp.push(s);
});
obj.push(temp);