javascript 数组常用的方法

140 阅读4分钟
  • toString() 把数组转换成数组值字符串

  • join() 方法将一个数组(或一个类数组对象)的所有元素连接成一个字符串并返回这个字符串。

  • pop() 从数组中删除最后一个元素

  • push() 像数组添加一个新元素

  • shift() 删除首个数组元素

  • unshift() 在数组开头添加新元素

  • splice(位置,删除多少元素,添加的新元素) 拼接数组

  • concat 连接两个数组

  •   用于连接两个或多个数组,该方法不会改变现有的数组,而仅仅会返回被连接的新数组
    
  • slice(start,end)

  • sort()

  • reverse() 反转数组中的元素

  • 数组迭代

  • forEach()

  • 对数组的每个元素执行一次提供的函数 et arr = [{ a: 1 }, {}]; arr.forEach(function(item, index) { item.b = index;}); console.log(arr); // [{a: 1, b: 0}, {b: 1}]

  • map() 方法通过对每个元素执行函数来创建新数组,不会更改原数组。

  • filter()

  • 创建一个新数组,其包含通过所有提供函数实现的测试的所有元素 arr.filter(callback(element,index,array),thisArg) 返回值:一个新的通过测试的元素的集合的数组,如果没有通过测试则返回空数组let arr = [1, 2, 4, 5, 6, 9, 10, 15]; let newarr = arr.filter(function(x) { return x % 2 !== 0; }); console.log(arr); // [1, 2, 4, 5, 6, 9, 10, 15] console.log(newarr); //[1, 5, 9, 15]

  • reduce() 方法是在每个数组元素上运行函数,以生成单个值。

  • every() 检查所有数组值是否通过测试

  • **用于检测数组所有元素是否都符合指定条件, 返回值:布尔值,如果所有元素都通过检测返回true,否则返回false

    const isBig = (element, index, array) => {
      return element >= 10;
    };
    let data1 = [12, 5, 8, 130, 44].every(isBig);let data2 = [12, 54, 18, 130, 44].every(isBig);console.log(data1); // falseconsole.log(data2); // true** 
    
  • some() 检查某些数组值是否通过了测试

  • keys()


    方法用于从数组创建一个包含数组键的可迭代对象,如果对象是数组返回true,否则返回false

**
  • includes()

    es6新增 用来判断一个数组是否包含一个指定的值
    arr.includes(element,index)
    element 需要查找的元素,
    index 从该索引处开始查找。如果为负值,则按升序从array.length+index 的索引开始搜索,默认为0
    
    返回值: 如果包含则返回true 否则返回false (includes 方法使用全等(===)来判断一个元素是否符合您的搜索)
    
    [1, 2, 3].includes(2); // true
    [1, 2, 3].includes(4); // false
    [1, 2, NaN].includes(NaN); // true
    let e1 = { name: 'zs', age: '12' };
    let e2 = { name: 'ls', age: '13' };
    let arr1 = [e1, e2];
    let arr4 = arr1.includes(e1);
    console.log(arr4); //true

**
  • indexOf()

    方法返回在数组中可以找到一个给定元素的第一个索引,如果不存在,则返回-1

**
  • isArray()

  • 用来判断一个对象是否为数组,如果对象是数组则返回true,否则返回false

  • find()

  •   es6新增 用来查找目标元素,找到就返回该元素,找不到就返回 undefined
      
      let arr1 = [1, 2, 3, 4, 5, 6, 7, 8];
      let arr2 = arr1.find((value, index, arr) => {
      	return value > 4;
      });
      let arr3 = arr1.find((value, index, arr) => {
      	return value > 14;
      });
      console.log(arr1); // [1, 2, 3, 4, 5, 6, 7, 8]
      console.log(arr2); //5
      console.log(arr3); //undefined
    
  • from()

  • **es6 新增 from() 方法用于通过拥有length属性的对象或可迭代的对象返回一个数组 如果对象是数组返回true,否则返回false

    Array.from(object,mapFunction,thisValue)
    object 必须 要转换为数组的对象,
    mapfunction 数组中每个元素要调用的函数
    thisValue 映射函数中的this对象
    返回值:对象是数组返回true,否则返回false
    
    let setObj = new Set(['a', 'b', 'c']);
    let arr = Array.from(setObj);
    console.log(arr); //["a", "b", "c"]
    console.log(Array.from([1, 2, 3], x => x + x)); //[2, 4, 6]** 
    
  • findIndex()

  • es6 新增 方法返回数组中满足提供的测试函数的第一个元素的索引,否则返回-1 let arr1 = [1, 2, 3, 4, 5, 6, 7, 8]; let arr2 = arr1.findIndex((value, index, arr) => { return value > 4; }); let arr3 = arr1.findIndex((value, index, arr) => { return value > 14; }); console.log(arr1); // [1, 2, 3, 4, 5, 6, 7, 8] console.log(arr2); //4 console.log(arr3); //-1

  • fill()

  • **es6 新增语法 用一个固定值填充一个数组中从起始索引到终止索引内的全部元素 Arr.fill(value,start,end) value用来填充数组元素的值,start 起始索引 默认为0 , end 终止索引 默认值为this.length返回值:修改后的远数组

    let arr1 = [1, 2, 3];
    let newarr = arr1.fill(7);
    console.log(arr1); //[7, 7, 7]** 
    
  • entries ()

  • (es6 新增) 是对健值对的遍历 方法返回一个新的 数组对象,该对象包含数组中每个索引的健/值对, 不会改变原数组。