关于javascript:JS数组方法shiftunshift用法实例分析

2次阅读

共计 1303 个字符,预计需要花费 4 分钟才能阅读完成。

unshift 办法:

定义和用法

unshift() 办法可向数组的结尾增加一个或更多元素,并返回新的长度。

语法

arrayObject.unshift(newele1,newelet2,….,neweleX)

参数 形容
newele1 必须。向数组增加的第一个元素
newele2 可选。向数组增加的第二个元素。
newelex 可选。可增加若干个元素。
返回值

array 的新长度。

阐明

unshift() 办法将把它的参数插入 arrayObject 的头部,并将曾经存在的元素依次地移到较高的下标处,以便留出空间。该办法的第一个参数将成为数组的新元素 0,如果还有第二个参数,它将成为新的元素 1,以此类推。

请留神,unshift() 办法不创立新的创立,而是间接批改原有的数组。

提醒和正文

正文:该办法会扭转数组的长度。

提醒:要把一个或多个元素增加到数组的尾部,请应用 push() 办法。

之前的开发过程中,巧用过 unshift 解决过一个问题。在此分享一下:


这是个商品分类的页面,能够看到有一级菜单和二级菜单,目标是让每个二级菜单的第一位 name 为全副,这样点击左侧一级菜单的时候,默认申请的就是一级分类上面的全副数据,然而后盾增加分类的时候是没有增加这个叫全副分类的,而且后盾增加也不太好,所以在前端获取到数据加工一下是最好的办法。一开始我想写一个标签放在二级菜单循环的后面,然而操作还是太过简单了,起初想了一下,这个需要,用 unshift 来操作,再适合不过。

数据结构如下

我是这么解决的:

getAllCategory: function() {
    let that = this;
    getCategoryList().then(res => {res.data.forEach((item)=>{
            item.child.unshift({
                id:item.id,
                name:'全副'
            })
        })
        let data = res.data;
        that.categoryTitle = data[0].name;
        that.sid = data[0].id;
        that.productList = data;
        that.categoryErList = res.data[0].child ? res.data[0].child : [];
        that.page = 1;
        that.loadend = false;
        that.tempArr = [];
        that.productslist();})
},

后端返回的数据结构为一个二维数组,每个对象中的 child 为二级菜单,所以在拿到数据的时候就给数组中每个对象的 child 增加一个叫“全副”的类目,并且赋予它的 id 就为父级的 id,因为到时候点击左侧一级菜单的时候就默认申请以后分类的全副数据,这个性能就是妙用 unshift 这个数组办法的一个例子。

shift 办法:

定义和用法

删除原数组第一项,并返回删除元素的值;如果数组为空则返回 undefined

语法
var a = [1,2,3,4,5];
 
var b = a.shift();         //a:[2,3,4,5]

如果你感觉这篇文章对你有点用的话,麻烦请给咱们的开源我的项目点点 star: http://github.crmeb.net/u/defu 不胜感激!

正文完
 0