【vue】vue+ES6处理数组:shift、unshift、map、filter、foreach、every、some、reduce、find、findIndex等方法

42 篇文章 1 订阅

shift()
删除原数组第一项,并返回删除元素的值,如果数组为空则返回undefined。该方法会改变原来的数组,而不会创建新的数组。

console.info(array);
console.info(nullarray);
console.info(array.shift());//返回删除元素的值
console.info(nullarray.shift());//空数组返回undefined
console.info(array);//数组变化了

unshift()
将参数添加到原数组开头,并返回数组的长度。该方法会改变原来的数组,而不会创建新的数组。

console.info(array);
console.info(array.unshift(-1,0));//向数组开头插入-1、0,返回插入后数组长度。
console.info(array);

map()方法:全部循环,不改变原数组,会生成新的数组。

    test(){
      let arr=[0,1,2,3,4];
      let afterArr = arr.map(val => val+2)
      console.log(arr);//[0, 1, 2, 3, 4]
      console.log(afterArr);//[2, 3, 4, 5, 6]
    },

foreach():全部循环,可以重新给原数组赋值

test(){
      let arr=[0,1,2,3,4];
      let afterArr = arr.forEach((val, idx) => arr[idx]=val+2)
      console.log(arr);//[2, 3, 4, 5, 6]
      console.log(afterArr);//undefined
    },

filter():过滤出满足条件的部分数据,不会改变原数组,会生成新的数组

test(){
      let arr=[0,1,2,3,4];
      let result = arr.filter(one => one>2);
      console.log(result); //[3,4]
    },

every():若目标数组中每一个对象都符合条件则返回true,否则返回false

some():若目标数组中某一个对象符合条件则返回true,否则返回false

test(){
      let arr=[0,1,2,3,4];
      let every_result = arr.every(one => one>2);
      let some_result = arr.some(one => one>2);
      console.log(every_result); //false
      console.log(some_result);//true
    },

reduce():常用于叠加、数组扁平化等,它接收一个回调函数作为累加器(accumulator),对该数组的所有元素(从左到右)执行操作,最后将计算结果累积为单一输出值。

arr.reduce(callback(accumulator, currentValue[, index[, array]])[, initialValue])

callback:必需,是一个函数,它接受四个参数:

  • accumulator(累计器):累计回调的返回值,也是上一次调用回调时返回的值,或者是 initialValue。
     
  • currentValue(当前值):数组中当前正在处理的元素。
  • index(可选):当前元素在数组中的索引(从0开始或从initialValue指定的位置开始)。
  • array(可选):调用 reduce 方法的原数组。

initialValue(可选):传递给 reduce 的初始值。如果不提供此值,那么 reduce 会从数组的第二个元素开始执行,并使用第一个元素作为 accumulator 的初始值。

    test() {
      let arr = [0, 1, 2, 3, 4];
      var sumValue = arr.reduce(function (sum, number) {
        //第一个参数为叠加总值,需要初始化,第二个参数是当前项
        return sum + number;
      }, 0); //sum的初始化
      console.log(sumValue); //10
    },

find():在数组中找到符合要求的对象 和filter的区别就是找到符合要求的对象就停止寻找了,返回的是一个对象,而filter返回的是所有符合要求的对象组成的新数组

test() {
      let arr = [0, 1, 2, 3, 4];
      var big = arr.find(val => val>2);
      console.log(big); //3
    },

findIndex():findIndex返回第一个符合条件的索引号

    test1() {
      let arr = [1, 1, 2, 0, 4];
      var big = arr.findIndex(val => val>2);
      console.log(big); //下标为4
    },

  • 2
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
使用Vue全家桶+ES6+Webpack+Axios可以实现登录、注册、商品列表展示与分页、搜索、商品详情、加入购物车、查看订单详情和支付等功能的具体实现如下: 1. 登录和注册功能: - 创建登录和注册的组件,包括输入框和按钮等元素。 - 在组件中使用Vue的双向数据绑定,将用户输入的用户名和密码与组件的数据进行绑定。 - 使用Axios发送POST请求将用户输入的用户名和密码发送到后端API进行验证。 - 根据后端返回的验证结果,进行相应的处理,如跳转到首页或显示错误信息。 2. 商品列表展示与分页功能: - 创建商品列表组件,使用Axios发送GET请求获取商品列表数据。 - 将获取到的商品列表数据绑定到组件的数据中。 - 使用Vue的v-for指令遍历商品列表数据,展示商品的相关信息。 - 实现分页功能,根据用户点击的页码发送相应的请求获取对应页码的商品列表数据。 3. 搜索功能: - 在商品列表组件中添加搜索框和搜索按钮等元素。 - 使用Vue的双向数据绑定,将用户输入的关键词与组件的数据进行绑定。 - 监听用户点击搜索按钮事件,在事件处理函数中使用Axios发送GET请求,将关键词作为参数发送到后端API进行搜索。 - 根据后端返回的搜索结果进行展示,更新商品列表数据。 4. 商品详情功能: - 创建商品详情组件,接收商品ID作为参数。 - 使用Axios发送GET请求,根据商品ID获取商品详情数据。 - 将获取到的商品详情数据绑定到组件的数据中,展示商品的详细信息。 5. 加入购物车功能: - 在商品详情组件中添加加入购物车按钮。 - 监听加入购物车按钮的点击事件,在事件处理函数中使用Axios发送POST请求,将商品ID和用户ID等信息发送到后端API进行处理。 - 后端API将用户选择的商品加入购物车,并返回相应的结果。 6. 查看订单详情和支付功能: - 创建订单详情组件,接收订单ID作为参数。 - 使用Axios发送GET请求,根据订单ID获取订单详情数据。 - 将获取到的订单详情数据绑定到组件的数据中,展示订单的相关信息。 - 实现支付功能,根据用户选择的支付方式使用Axios发送POST请求,将支付相关的信息发送到后端API进行处理。 通过以上步骤的实现,您可以在Vue全家桶+ES6+Webpack+Axios的技术栈下完成登录、注册、商品列表展示与分页、搜索、商品详情、加入购物车、查看订单详情和支付等功能的开发。希望对您有所帮助!如果有任何进一步的问题,请随时提问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值