2个不同数组中的数组拼接功能怪异

时间:2019-05-21 01:30:49

标签: javascript vue.js

我有allProducts道具是Laravel通过的。它包含15个元素。

<product-list :all-products='@json($products)'></product-list>

ProductList组件中,我尝试通过将allProducts属性的数据分配给另一个名为result的变量来保留它,以便以后使用。

接下来,我使用拼接函数从result获取部分数据,并将其分配给products。因此productsresult应该具有相同的9个元素(15-6 = 9)。但是,我不知道为什么我的allProducts也有9个元素(应该为15个,因为我没有拼接allProduct)。

我尝试在使用splice之前打印出allProduct,并且它包含了15个元素,但是使用了splice函数之后的console.log语句仅返回9个元素。

    export default {
        name: "ProductPage",
        data() {
            return {
                products: [],
                result: []
            }
        },
        props: ['allProducts'],
        created() {
            this.result = this.allProducts;

            // Print 15 products
            console.log(this.allProducts.length);

            this.products = this.result.splice(0, 6);

            // Only print 9 products, even I didn't use splice on allProducts array.
            console.log(this.allProducts.length);

        }

1 个答案:

答案 0 :(得分:0)

Splice突变原始数组,

  

splice()方法通过删除或更改数组的内容   替换现有元素和/或添加新元素。

您可以改用slice