JS数组常用方法

/**
 * concat() 方法用于连接两个或多个数组,返回被连接数组的一个副本
 * 不会改变原来数组
*/
const concatArr = () => {
  let arr1 = [10, 20, 30], arr2 = [1, 2, 3];
  let arr3 = arr1.concat(arr2);
  console.log(arr3) // [10,20,30,1,2,3];
}
// concatArr();


/**
 * join() 方法用于把数组中的所有元素放入一个字符串。元素是通过指定的分隔符进行分隔的,默认使用’,'号分割
 * 不会改变原来数组
*/
const joinArr = () => {
  let arr1 = [10, 20, 30];
  console.log(arr1.join('*'));// 10*20*30
  console.log(arr1); // [ 10, 20, 30 ]
}
// joinArr();


/**
 * push() 方法可向数组的末尾添加一个或多个元素,并返回新的长度
 * 改变原数组
 * 返回值为新的长度
 * 可以添加多个元素
*/
const pushArr = () => {
  let arr1 = [10, 20, 30];

  console.log(arr1.push(50)); // 4
  console.log(arr1); // [ 10, 20, 30, 50 ]
  arr1.push(60, 70)
  console.log(arr1); // [ 10, 20, 30, 50, 60, 70 ]

}
// pushArr();



/**
 * pop() 方法用于删除并返回数组的最后一个元素。返回最后一个元素,会改变原数组
 * 改变原数组
 * 返回值为最后一个元素(被删除的那个元素)
*/
const popArr = () => {
  let arr1 = [10, 20, 30];

  console.log(arr1.pop()); // 30
  console.log(arr1); // [ 10, 20 ]

}
// popArr();



/**
 * shift() 方法用于把数组的第一个元素从其中删除,并返回第一个元素的值。返回第一个元素,改变原数组
 * 改变原数组
 * 返回值为第一个元素(被删除的那个元素)
*/
const shiftArr = () => {
  let arr1 = [10, 20, 30];

  console.log(arr1.shift()); // 10
  console.log(arr1); // [ 20, 30 ]

}
// shiftArr();




/**
 * unshift() 方法可向数组的开头添加一个或更多元素,并返回新的长度。返回新长度,改变原数组
 * 改变原数组
 * 返回值为新的长度
 * 可以添加多个元素
*/
const unshiftArr = () => {
  let arr1 = [10, 20, 30];

  console.log(arr1.unshift(50)); // 4
  console.log(arr1); // [ 50, 10, 20, 30 ]

  arr1.unshift(60, 70);
  console.log(arr1); //[ 60, 70, 50, 10, 20, 30 ]

}
unshiftArr();




/**
 * slice(start, end)返回一个新的数组,包含从 start 到 end (不包括该元素)的元素。返回选定的元素,该方法不会修改原数组
 * 不改变原数组
 * 返回值为选定的元素(含前不含后)
*/
const sliceArr = () => {
  let arr1 = [10, 20, 30, 40, 50, 60];

  console.log(arr1.slice(1, 3)); // [ 20, 30 ]
  console.log(arr1); // [ 10, 20, 30, 40, 50, 60 ]

}



/**
 * splice(start, deleteCount, item1, item2)
 * splice() 方法可删除从 start 处开始的零个或 deleteCount 个元素,并且用参数列表中声明的一个或多个值来替换那些被删除的元素。如果从数组中删除了元素,则返回的是含有被删除的元素的数组。splice() 方法会直接对数组进行修改。
*/
const spliceArr = () => {

  let arr1 = [10, 20, 30, 40, 50, 60];

  console.log(arr1.splice(1, 1)); // [ 20 ]
  console.log(arr1); // [ 10, 30, 40, 50, 60 ]

  console.log(arr1.splice(1, 0, 'append')); // []
  console.log(arr1); // [ 10, 'append', 30, 40, 50, 60 ]

  console.log(arr1.splice(1, 2, 'append1', 'append2')); // []
  console.log(arr1); // [ 10, 'append1', 'append2', 40, 50, 60 ]

}





/**
 * sort(compare)按照 Unicode code 位置排序,默认升序
 * compare(a,b) (可选)用来指定按某种顺序进行排列的函数。如果省略,元素按照转换为的字符串的各个字符的Unicode位点进行排序。如果返回值大于0,则b会排到a的前面
 * 改变原数组
 * 返回值为排序后的数组
*/
const sortArr = () => {
  let arr1 = [40, 20, 50, 10, 30];
  console.log(arr1.sort((a, b) => { return a - b; }));// [ 10, 20, 30, 40, 50 ]
  console.log(arr1);// [ 10, 20, 30, 40, 50 ]

  let strArr = ['a', 'c', 'e', 'b', 'd'];
  console.log(strArr.sort()); // [ 'a', 'b', 'c', 'd', 'e' ]
  console.log(strArr); // [ 'a', 'b', 'c', 'd', 'e' ]

}




/**
 * reverse() 方法用于颠倒数组中元素的顺序。返回的是颠倒后的数组,会改变原数组。
 * 改变原数组
 * 返回值为颠倒后的数组
*/
const reverseArr = () => {
  let arr1 = [10, 20, 30, 40, 50, 60];

  console.log(arr1.reverse()); // [ 60, 50, 40, 30, 20, 10 ]
  console.log(arr1); // [ 60, 50, 40, 30, 20, 10 ]

}





/**
 * indexOf() 和 lastIndexOf()
 * 接受两个参数:查找的值、查找起始位置。不存在,返回 -1 ;存在,返回位置。indexOf 是从前往后查找, lastIndexOf 是从后往前查找。
 * 不改变原数组
 * 返回值:不存在返回 -1 ,存在返回位置下标
*/
const indexofArr = () => {
  let arr1 = [10, 20, 30, 40, 50, 60];

  console.log(arr1.indexOf(20)); // 1
  console.log(arr1.lastIndexOf(20)); // 1
  console.log(arr1); // [ 10, 20, 30, 40, 50, 60 ]

  console.log(arr1.indexOf(20, 2)); // -1
  console.log(arr1.lastIndexOf(40, 2)); // -1

}






/**
 * some()对数组的每一项都运行给定的函数
 * 不改变原数组
*/
const someArr = () => {
  let arr1 = [10, 20, 30, 40, 50, 60];

  console.log(arr1.some((value) => {
    return value > 30;
  })); // true
  console.log(arr1); // [ 10, 20, 30, 40, 50, 60 ]
  console.log(arr1.some((value) => {
    return value > 70;
  })); // false

}




/**
 * filter()数组的每一项都运行给定的函数,返回 结果为 ture 的项组成的数组
 * 不改变原数组
 * 返回值为数组
*/
const filterArr = () => {

  let arr1 = [10, 20, 30, 40, 50, 60];

  console.log(arr1.filter((value) => {
    return value > 40;
  })); // [ 50, 60 ]
  console.log(arr1); // [ 10, 20, 30, 40, 50, 60 ]


}



/**
 * find()传入一个回调函数,找到数组中符合当前搜索规则的第一个元素,返回它,并且终止搜索。
 * ES6新增
 * 不改变原数组
 * 返回值为数组中符合条件的第一个元素
*/
const findArr = () => {
  let arr1 = [10, 20, 30, 40, 50, 60];

  console.log(arr1.find((value) => {
    return value > 40;
  })); // 50
  console.log(arr1); // [ 10, 20, 30, 40, 50, 60 ]
}







/**
 * findIndex()找到数组中符合当前搜索规则的第一个元素,返回它的下标,终止搜索
 * ES6新增
 * 不改变原数组
 * 返回值为数组中符合条件的第一个元素的下标
*/
const findIndexArr = () => {

  let arr1 = [10, 20, 30, 40, 50, 60];

  console.log(arr1.findIndex((value) => {
    return value > 40;
  })); // 4
  console.log(arr1); // [ 10, 20, 30, 40, 50, 60 ]

}




/**
 * fill(value, start, end)用一个固定值填充一个数组中从起始索引到终止索引内的全部元素。不包括终止索引。
 * 改变原数组
 * 返回值为改变后的新数组
*/
const fillArr = () => {

  let arr1 = [10, 20, 30, 40, 50, 60];

  console.log(arr1.fill(99, 2, 4)); // [ 10, 20, 99, 99, 50, 60 ]
  console.log(arr1); // [ 10, 20, 99, 99, 50, 60 ]


}





/**
 * includes()用来判断一个数组是否包含一个指定的值,根据情况,如果包含则返回 true,否则返回false
 * 不改变原数组
 * 返回值为布尔值
*/

const includesArr = () => {
  
let arr1 = [10, 20, 30, 40, 50, 60, NaN];

console.log(arr1.includes(30)); // true
console.log(arr1.includes(55)); // false
console.log(arr1); // [ 10, 20, 99, 99, 50, 60 ]


console.log(arr1.includes(NaN)); // true
console.log(arr1.indexOf(NaN)); // -1
console.log(arr1); // [ 10, 20, 99, 99, 50, 60 ]


}






/**
 * reduce(callback(Accumulator, currentValue, index, arr), initialValue)对累计器和数组中的每个元素(从左到右)应用一个函数,将其简化为单个值 
 * 不改变原数组
 * 返回值为函数累计处理的结果
 * 如果没有提供initialValue,reduce 会从索引1的地方开始执行 callback 方法,跳过第一个索引。如果提供initialValue,从索引0开始。如果数组为空且没有提供initialValue,会抛出TypeError
*/
const reduce = () => {
      // 求和
      let arr1 = [10, 20, 30, 40, 50, 60];

      console.log(arr1.reduce((calculate, value) => {
          return calculate += value;
      }, 0)); // 210
      console.log(arr1); // [ 10, 20, 99, 99, 50, 60 ]
  
  

          // 二维数组转一维数组
    let arr1 = [[10, 20], [30, 40],[50, 60]];

    console.log(arr1.reduce((calculate, value) => {
        return calculate.concat(value);
    }, [])); // [ 10, 20, 30, 40, 50, 60 ]
    console.log(arr1); // [ [ 10, 20 ], [ 30, 40 ], [ 50, 60 ] ]


}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
JS数组常用方法有很多,以下是其中的一些常用方法: 1. Array.push():向数组的末尾添加一个或多个元素,并返回新的数组长度。原数组改变。 2. Array.pop():删除数组的最后一个元素,并返回删除的元素。原数组改变。 3. Array.shift():删除数组的第一个元素,并返回删除的元素。原数组改变。 4. Array.unshift():向数组的开头添加一个或多个元素,并返回新的数组长度。原数组改变。 5. Array.reverse():反转数组的顺序。原数组改变。 6. Array.sort():对数组进行排序。原数组改变。 7. Array.splice():从数组中删除元素,并可以在指定位置插入新的元素。原数组改变。 8. Array.concat():合并两个或多个数组,生成一个新的数组。原数组不变。 9. Array.join():将数组的所有元素连接成一个字符串。原数组不变。 10. Array.indexOf():返回指定元素在数组中的索引,如果不存在则返回-1。 11. Array.slice():从指定位置截取数组的片段并返回新的数组。原数组不变。 12. Array.forEach():对数组的每个元素执行指定的操作。 13. Array.map():对数组的每个元素执行指定的操作,并返回一个新的数组。 14. Array.filter():根据指定的条件过滤数组的元素,并返回一个新的数组。 15. Array.every():检测数组的所有元素是否都满足指定的条件。 16. Array.some():检测数组的是否存在满足指定条件的元素。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值