当我在Javascript中创建这样的数组时:
var tabInfos = [];
tabInfos[1] = [];
tabInfos[1]['label'] = 'one';
tabInfos[1]['id'] = '111';
tabInfos[2] = [];
tabInfos[2]['label'] = 'two';
tabInfos[2]['id'] = '222';
如何让console.log(tabInfos)显示第一个值(例如1,2):
答案 0 :(得分:4)
您将第一个项目视为未定义的原因是因为它是。 JS Arrays从0开始,你从1开始。
看一下获得你想要的东西的推荐方法 - 一系列对象:
var tabInfos = [{
"label": "zero",
"id": "000"
}, {
"label": "one",
"id": "111"
}, {
"label": "two",
"id": "222"
}];
console.log(tabInfos);
// or if you must
console.log(JSON.stringify(tabInfos));
答案 1 :(得分:3)
您应该使用对象,而不是内部项目的数组。它们不像数组一样。
var tabInfos = [];
tabInfos[1] = {};
tabInfos[1]['label'] = 'one';
tabInfos[1]['id'] = '111';
tabInfos[2] = {};
tabInfos[2]['label'] = 'two';
tabInfos[2]['id'] = '222';
答案 2 :(得分:1)
您可以通过以下方式实现此目的:
var i = 0;
JSON.stringify(tabInfos, null, 2).split(/\n/).forEach(function(line) {
window.console && console.log(
(/\s{2}\S/.test(line)) ? i++ + line : line
);
});
答案 3 :(得分:0)
实际上,通过屏幕截图,控制台 DOES 显示tabInfos [1]和tabInfos [2]的第一个值,它在减号后面显示 inline [ - ]并且因为没有值,右边没有任何值。
答案 4 :(得分:0)
var tabInfos = [];
tabInfos[1] = {};
tabInfos[1].label = 'one';
tabInfos[1].id = '111';
tabInfos[2] = {};
tabInfos[2].label = 'two';
tabInfos[2].id = '222';
但建议使用tabInfos而不是数组(然后你可以创建关联数组也意味着你可以拥有命名属性)。
答案 5 :(得分:-1)
您是否担心第一个未定义的值? JavaScript数组是0索引的。如果将第一个值设置为1,则第0个位置将自动变为未定义。