我试图将" lene"(它只是一个测试样本)推入变量" q"。出于某种原因,这是我的浏览器提到的:
Javascript highscore.html:24 Uncaught TypeError: undefined is not a function
Javascript highscore.html:145 Uncaught TypeError: Cannot read property 'length' of undefined
第145行的第二个错误是因为第一个错误。我在这里的评论中标记了第24行:
var q = [{
TernRank: 2,
TernVan: '03/12/2014',
TernTot: '01/01/2015',
TernDagen: 1
}, {
TernRank: 3,
TernVan: '08/01/2014',
TernTot: '01/01/2015',
TernDagen: 1
}, {
TernRank: 1,
TernVan: '03/12/2014',
TernTot: '01/01/2015',
TernDagen: 1
}, {
TernRank: 4,
TernVan: '03/12/2014',
TernTot: '01/01/2015',
TernDagen: 1
}];
DAY = 1000 * 60 * 60 * 24
for (i = 0; i < 4; i++) {
d1i = new Date(q[i].TernVan)
d2i = new Date(q[i].TernTot)
days_passedi = Math.round((d2i.getTime() - d1i.getTime()) / DAY)
q[i].splice(3, 0, "Lene"); //This is line 24
};
如果删除&#34; [i]&#34;,第24行确实有效。 有谁知道它导致错误的原因或/和如何修复它?
答案 0 :(得分:0)
q
是一个数组,q[i]
是一个对象。
默认情况下,只有数组的方法为.splice
:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/splice
如果您希望添加&#39; Lene&#39;到q
数组,最简单的方法是:
q.push('Lene');
或者如果确实想要使拼接工作,你可能想要这样做:
q.splice(i, 0, 'Lene');
将添加元素&#39; Lene&#39;在i
数组中的索引q
处。或者您可能想要这样做:
q.splice(q.length + 1, 0, 'Lene');
这与q.push