数组的方法 es6对数组处理的一些方法

  • find()只返回第一个满足条件的(元素)
const myArr = [1, 2, 3, 4, 5, 6];
    var v = myArr.find((item, itemindex, arr) => {
      return itemindex > 2;
      });
// console.log(v); //4
  • findIndex只是当条件为true时findIndex()返回的是索引值index 如果没有符合条件元素时findIndex()返回的是-1
 var i = bookArr.findIndex((value) => value.id == 4);
// console.log(i); // 3
var i2 = bookArr.findIndex((value) => value.id == 100);
 // console.log(i2); // -1
 
 //eg:
 let objcart = {
      id: 1,
      SkuId: 10,
      Qty: 1,
  };
 let userArr = [
      { id: 1, SkuId: 10, Qty: 1 },
      { id: 2, SkuId: 10, Qty: 1 },
      { id: 3, SkuId: 10, Qty: 1 },
  ];
  let content = userArr.findIndex(
      (item) => item.id == objcart.id && item.SkuId == objcart.SkuId
  );
  if (content === -1) {
      userArr.push(objcart);
 } else {
      userArr[content].Qty += 1;
 }
 console.log(userArr,"userArr")        
  • filter()返回的是数组,数组内是所有满足条件的元素 如果条件不满足,filter()返回的是一个空数组
 var arr = [
      { id: 1, userName: "laozhang" },
      { id: 2, userName: "laowang" },
      { id: 3, userName: "laoliu" },
    ];
    // console.log(arr.filter(item=>item.id>1));
    //[ { id: 2, userName: 'laowang' },{ id: 3, userName: 'laoliu' } ]  
  • forEach 循环数组
var myArrTow = [1, 3, 4, 5, 6, 3, 7, 4];
    var numTow = 0;
    myArrTow.forEach((item) => {
      numTow += item;
 });
 // console.log(numTow, "numTow");    33
  • map 通过指定函数处理数组的每个元素,并返回处理后的数组。(或者给后台接口加上自己的字段)
let numbers = [1,2,3,4,5];
let newnumbers=numbers.map(num => {
    return num*2;
});
console.log(newnumbers);
//[2, 4, 6, 8, 10]

let arrmap = [
      {
        id: 113,
        shopName: "a旗舰店",
        sclist: [
          { goodsId: 491, skuId: 2162, qty: 26, price: 5 },
          { goodsId: 496, skuId: 2294, qty: 6, price: 10 },
        ],
      },
      {
        id: 114,
        shopName: "b旗舰店",
        sclist: [
          { goodsId: 491, skuId: 2162, qty: 26, price: 5 },
          { goodsId: 496, skuId: 2294, qty: 6, price: 10 },
        ],
      },
      {
        id: 115,
        shopName: "c旗舰店",
        sclist: [
          { goodsId: 491, skuId: 2162, qty: 26, price: 5 },
          { goodsId: 496, skuId: 2294, qty: 6, price: 10 },
        ],
      },
      {
        id: 116,
        shopName: "d旗舰店",
        sclist: [
          { goodsId: 491, skuId: 2162, qty: 26, price: 5 },
          { goodsId: 496, skuId: 2294, qty: 6, price: 10 },
        ],
      },
    ];
    let arrmapTow = [];

    arrmapTow = arrmap.map((item) => {
      return Object.assign({}, item, {
        allChecked: false,
      });
    });
    console.log(arrmapTow, "arrmapTow"); //对一层数组做处理

    let arrmapThree = [];
    arrmapThree = arrmap.map((item) => {
      return {
        id: item.id,
        shopName: item.shopName,
        allChecked: false,
        sclist: item.sclist.map((itemA) => {
          return Object.assign({}, itemA, {
            endTime: 0,
          });
        }),
      };
    });

    console.log(arrmapThree, "arrmapThree");//对二层数组做处理

  • new Set()它类似于数组,但是成员的值都是唯一的,没有重复的值。
//去重复
 function dedupe(array) {
      return Array.from(new Set(array));
   }
 // console.log( dedupe([1,1,2,3]))//[1,2,3]
  
  
//多数组的合并去重
let arrset1 = [1, 2, 3, 4]
let arrset2 = [2, 3, 4, 5, 6]
let set7 = new Set([...arrset1, ...arrset2])
console.log(set7)//Set(6) {1, 2, 3, 4, 5,6}
  • join() 把数组的所有元素放入一个字符串。
   var aa = ["aa", "bb"];
   console.log(aa.join(','))    //aa,bb
  • split() 用于把一个字符串分割成字符串数组
    var bb = "aa,bb";
    console.log(bb.split(","))  // ["aa", "bb"]
  • push 向数组的末尾添加一个或更多元素,并返回新的长度。
    let numbers = [1,2,3,4,5,6,7,8,9,10];
	numbers.push(100);
	console.log(numbers);//  [1,2,3,4,5,6,7,8,9,10,100]
  • unshift 向数组的开头添加一个或更多元素,并返回新的长度
    let numbers = [1,2,3,4,5,6,7,8,9,10];
	numbers.unshift(100);
	console.log(numbers);//  [100,1,2,3,4,5,6,7,8,9,10]
  • pop 删除数组的最后一个元素并返回删除的元素。
	let numbers = [1,2,3,4,5,6,7,8,9,10];
	numbers.pop();
	console.log(numbers);//  [1,2,3,4,5,6,7,8,9]

  • shift 删除并返回数组的第一个元素
    let numbers = [1,2,3,4,5,6,7,8,9,10];
	numbers.shift();
	console.log(numbers);//  [2,3,4,5,6,7,8,9,10]
  • reverse 反转数组的元素顺序。
   let numbers = [1,2,3,4,5,6,7,8,9,10];
	numbers.reverse ();
	console.log(numbers);//[10, 9, 8, 7, 6, 5, 4, 3, 2, 1]

  • slice 选取数组的的一部分,并返回一个新数组。
 var arrslice=['George','John','Thomas']

  console.log(arrslice.slice(1)) // ["John", "Thomas"] 
  • splice 从数组中添加或删除元素。
  var arrslice=['George','John','Thomas']
 console.log(arrslice.splice (1,2)) // ["John", "Thomas"]
  • indexOf 搜索数组中的元素,并返回它所在的位置。
   let numbers = [1,2,3,4,5];	
    result = numbers.indexOf(3);
	console.log(result)  //2   下标为2
  • sort 数组排序
  	let numbers = [2,3,1,4,5];
	result = numbers.sort();
	console.log(result)
	//1,2,3,4,5 
  • isArray 判断对象是否为数组。
 let numbers = [1,2,3,4,5];
	result = Array.isArray(numbers);
	console.log(result)
	//true  是数组
  • includes 判断一个数组是否包含一个指定的值
	let numbers = [1,2,3,4,5];
	result = numbers.includes(3);
	console.log(result)
	//true  存在
  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值