Javascript 如何创建从特定数字开始的对象或数组?

Javascript 如何创建从特定数字开始的对象或数组?,javascript,arrays,object,Javascript,Arrays,Object,我想创建从#32开始循环的对象或数组。我试过这样的方法: var test = [{'recID':"32",'optionalCol':"first",'recID':"33",'optionalCol':"last",'recID':"34",'optionalCol':"age"}]; for(var i=32; i < test.lenght; i++) { console.log(test[i].recID); } var test = { 32: "firs

我想创建从#32开始循环的对象或数组。我试过这样的方法:

var test = [{'recID':"32",'optionalCol':"first",'recID':"33",'optionalCol':"last",'recID':"34",'optionalCol':"age"}];
for(var i=32; i < test.lenght; i++) {
    console.log(test[i].recID);
}
var test = {
    32: "first",
    33: "last",
    34: "age"
}
for (t in test) {
    console.log(test[t])
}
console.log(test[33])
这对我不起作用,我试着这样做:

var test = [{'recID':"32",'optionalCol':"first",'recID':"33",'optionalCol':"last",'recID':"34",'optionalCol':"age"}];
for(var i=32; i < test.lenght; i++) {
    console.log(test[i].recID);
}
var test = {
    32: "first",
    33: "last",
    34: "age"
}
for (t in test) {
    console.log(test[t])
}
console.log(test[33])
for(变量i=32;i

我想知道这是否可能,以及我的对象/数组必须如何构造才能从32开始循环?如果有人能帮忙,请告诉我

您要做的是像这样使用关联数组:

var test = [{'recID':"32",'optionalCol':"first",'recID':"33",'optionalCol':"last",'recID':"34",'optionalCol':"age"}];
for(var i=32; i < test.lenght; i++) {
    console.log(test[i].recID);
}
var test = {
    32: "first",
    33: "last",
    34: "age"
}
for (t in test) {
    console.log(test[t])
}
console.log(test[33])
可以像这样迭代对象:

var test = [{'recID':"32",'optionalCol':"first",'recID':"33",'optionalCol':"last",'recID':"34",'optionalCol':"age"}];
for(var i=32; i < test.lenght; i++) {
    console.log(test[i].recID);
}
var test = {
    32: "first",
    33: "last",
    34: "age"
}
for (t in test) {
    console.log(test[t])
}
console.log(test[33])
或者像这样快速访问一个项目:

var test = [{'recID':"32",'optionalCol':"first",'recID':"33",'optionalCol':"last",'recID':"34",'optionalCol':"age"}];
for(var i=32; i < test.lenght; i++) {
    console.log(test[i].recID);
}
var test = {
    32: "first",
    33: "last",
    34: "age"
}
for (t in test) {
    console.log(test[t])
}
console.log(test[33])

查看jsiddle:

您可以使用一个对象,其中数字作为键,内部包含对象,这反映了给定示例中的值

var test = {
    32: {
        'recID': "32",
        'optionalCol': "first"
    },
    33: {
        'recID': "33",
        'optionalCol': "last"
    },
    34: {
        'recID': "34",
        'optionalCol': "age"
    }
};
此结构允许使用访问属性

test[33].optionalCol
迭代

Object.keys(test).forEach(function (key, i, keys) {
    // test[k] ...
});
对象的属性计数

Object.keys(test).length // 3

它应该是
test.length
而不是
test.lenght
,不确定这是否只是一个输入错误。32是索引吗?还是与recID有关?就像你需要在recID=32的地方开始迭代一样,你的测试参数不是数组,而是一个对象。所以你不能通过索引来访问它的元素(这就是为什么测试[32]不起作用)我应该从32开始循环,这样我的recID应该是一个索引。你的属性会被覆盖。@martingottewei我如何检查测试变量的长度?通常我是用test.length执行此操作的,但我不确定在这种情况下是否有效。
.length
仅适用于数组。您可以使用
Object.keys(test).length
Object.keys()
将获取该对象并返回该对象的键数组。