Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/39.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Arrays 此.items[id].size.pop不是函数_Arrays_Node.js_Express_Methods_Arr - Fatal编程技术网

Arrays 此.items[id].size.pop不是函数

Arrays 此.items[id].size.pop不是函数,arrays,node.js,express,methods,arr,Arrays,Node.js,Express,Methods,Arr,我正在尝试创建一个大小数组。我正在添加到数组中,它正在显示。我尝试使用.pop()删除,它给出了本文标题中列出的错误 this.add = function(item, id, size){ var storedItem = this.items[id]; if(!storedItem) { storedItem = this.items[id] = {item: item, qty: 0, price: 0, size: []}

我正在尝试创建一个大小数组。我正在添加到数组中,它正在显示。我尝试使用
.pop()删除,它给出了本文标题中列出的错误

    this.add = function(item, id, size){
        var storedItem = this.items[id];

        if(!storedItem) {
            storedItem = this.items[id] = {item: item, qty: 0, price: 0, size: []}. <------
        }
        storedItem.size += size;
        storedItem.qty++;
        storedItem.price = storedItem.item.price * storedItem.qty;
        this.totalQty++;
        this.totalPrice += storedItem.item.price;
    }

    this.reduceByOne = function(id){
        this.items[id].size.pop().         <------------

        this.items[id].qty--;
        this.items[id].price -= this.items[id].item.price;
        this.totalQty--;
        this.totalPrice -= this.items[id].item.price;

        if(this.items[id].qty <= 0) {
            delete this.items[id];
        }
    }
您的意思是在这里使用
推送
而不是
+=

storedItem.size.push(size);

您正在此行将数组更改为另一种类型:
storedItem.size+=size。。。e、 g.
[]+1
产生
“1”
这就是问题所在,现在已经解决了,谢谢你的评论。都德。脸掌。。。是的,那把它修好了。非常感谢你。
storedItem.size += size;
storedItem.size.push(size);