JavaScript undefined不是一个函数(使用splice函数)

时间:2015-01-05 08:57:23

标签: javascript

我试图将" 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行确实有效。 有谁知道它导致错误的原因或/和如何修复它?

1 个答案:

答案 0 :(得分:0)

q是一个数组,q[i]是一个对象。

默认情况下,只有数组的方法为.splicehttps://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

基本相同
相关问题