有时,.splice不是一个功能

时间:2017-12-23 14:53:12

标签: javascript jquery json

我遇到了一个奇怪的错误。我得到.splice不是控制台中的一个函数,但实际上,我在数组上做了.splice(这是有效的)。而且,它并不总是出错。当我刷新页面时,有时我会得到它,有时候,我没有得到它。我不明白为什么。你能解释一下我的错误,我在这里做错了什么?

编辑:我忘了在我的变量数组声明(var ... = [])和我的jQuery.getJSON之间提到,我在我的变量(整数)中添加了东西。这就是我使用拼接的原因。我想用JSON中的新项目来命令我的数组。此外,所有数组都包含相同数量的元素。我总是在每个数组中添加相同数量的元素。

这是我有问题的代码:

 var HeightLegs = [];
 var IdLegs = [];
 var PriceLegs = [];
 var QuantityLegs = [];
 jQuery.getJSON('/products/legs.js', function (product)
 {
    for (var i = 0; i < product.variants.length; i++)
    {
        var indexToAdd = 0;
        while (indexToAdd < HeightLegs.length && HeightLegs[indexToAdd] < +(product.variants[i].option1.replace('"', '')))
        {
            indexToAdd++;
        }

        IdLegs.splice(indexToAdd, 0, product.variants[i].id);
        HeightLegs.splice(indexToAdd, 0, +(product.variants[i].option1.replace('"', '')));
        PriceLegs.splice(indexToAdd, 0, product.variants[i].price / 100);

        if (product.variants[i].inventory_policy == "continue")
            QuantityLegs.splice(indexToAdd, 0, 1);
        else {
            // MY ERROR IN THE CONSOLE IS ON THIS SPLICE ONLY!!!!
            QuantityLegs.splice(indexToAdd, 0, product.variants[i].inventory_quantity);
        }
    }
});

我不明白的是错误并不是一成不变的。有时我会得到它,有时我不会...

感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

根据上述评论:

ever之类的错误意味着what已定义,但方法results = searcher.search(query) for hit in results: print("the Score", hit.score) print("the rank", hit.rank) print("the document number", hit.docnum) 未绑定到此对象。它只会导致两件事(如果我知道的话):

a)方法拼写错误的名称({{1}})

b)错误类型的对象/类({{1}})

在这种情况下,出现错误,因为var ShopifyQuantityLegs被意外设置为Number(ShopifyQuantityLegs = 1)所以b)是线索