美文网首页
数组一些常用方法整理

数组一些常用方法整理

作者: LELIN | 来源:发表于2019-07-05 15:48 被阅读0次

一、Array.from()

方法从一个类似数组或可迭代对象中创建一个新的,浅拷贝的数组实例。
将类数组对象转换为真正数组,
将Set结构的数据转换为真正的数组

console.log(Array.from('foo'))
const arr = [1,2,3]
console.log(arr)
console.log(Array.from((arr), x => x + x))
console.log(arr)

Array.from()方法可以将ES6-Set结构转为数组,这就提供了去除数组重复成员的另一种方法。

//数组去重并合并
function combine() {
    let arr = [].concat.apply([], arguments);  //没有去重复的新数组 
    return Array.from(new Set(arr));
}
var a = [1,1,2,2], b=[2,2,3,3]
combine(a,b)

二、Array.prototype.concat()

concat() 方法用于合并两个或多个数组。此方法不会更改现有数组,而是返回一个新数组。
concat方法不会改变this或任何作为参数提供的数组,而是返回一个浅拷贝。

var array1 = ['a', 'b', 'c'];
var array2 = ['d', 'e', 'f'];

console.log(array1)
console.log(array2)
console.log(array1.concat(array2));

//concat将对象引用复制到新数组中。 
//原始数组和新数组都引用相同的对象。
//如果引用的对象被修改,则更改对于新数组和原始数组都是可见的。
array1[2] = 'ccc'
console.log(array1)
console.log(array1.concat(array2))

Array.prototype.every()

every() 方法测试一个数组内的所有元素是否都能通过某个指定函数的测试。它返回一个布尔值。
不会改变原数组。
若收到一个空数组,此方法在一切情况下都会返回 true。

function isBelowThreshold(currentValue) {
  //array1[10] = 50
  return currentValue < 40;
}
var array1 = [1, 30, 39, 29, 10, 13];

console.log(array1)
console.log(array1.every(isBelowThreshold));

//console.log(array1)

//every 遍历的元素范围在第一次调用 callback 之前就已确定了。
//后边添加或删除的元素是不会被callback访问到的

Array.prototype.filter()

filter() 方法创建一个新数组, 其包含通过所提供函数实现的测试的所有元素。
filter不会改变原数组,它返回过滤后的新数组,没有元素通过则返回空数组

function fn(currentValue) {
  //array1[6] = 50
  return currentValue.length < 2;
}
var array1 = ["1", "8", "39", "29", "189", "13"];

console.log(array1)
console.log(array1.filter(fn));
console.log(array1)
//every 遍历的元素范围在第一次调用 callback 之前就已确定了。
//后边添加或删除的元素是不会被callback访问到的

Array.prototype.find()

find()` 方法返回数组中满足提供的测试函数的第一个元素的值。否则返回 undefined
find方法不会改变数组。

var array1 = [5, 12, 8, 130, 44];

var found = array1.find(function(element) {
  return element > 10;
});

console.log(found);

Array.prototype.forEach()

forEach实现数组元素的遍历,不改变原数组

Array.prototype.map()

map() 方法创建一个新数组,其结果是该数组中的每个元素都调用一个提供的函数后返回的结果。

//不改变原数组本身
var array1 = [1, 4, 9, 16];
const map1 = array1.map(x => x * 2);
console.log(map1);
console.log(array1)
map 不修改调用它的原数组本身(当然可以在 callback 执行时改变原数组)
var array1 = [1, 4, 9, 16];
array1.map((x,index,arr) => {
  arr[index] = 5
});
console.log(array1)

Array.prototype.pop()

.pop()方法从数组中删除最后一个元素,并返回该元素的值。改变原数组

var plants = ['broccoli', 'cauliflower', 'cabbage', 'kale', 'tomato'];
console.log(plants.pop());
console.log(plants);

Array.prototype.push()

push() 方法将一个或多个元素添加到数组的末尾,并返回该数组的新长度。改变原数组

var animals = ['pigs', 'goats', 'sheep'];
console.log(animals.push('cows'));
console.log(animals);

Array.prototype.shift()

shift() 方法从数组中删除第一个元素,并返回该元素的值。改变原数组

var array1 = [1, 2, 3];
console.log(array1.shift())
console.log(array1)

Array.prototype.unshift()

unshift() 方法将一个或多个元素添加到数组的开头,并返回该数组的新长度(修改原有数组)。

var array1 = [1, 2, 3];
console.log(array1.unshift(22)); //返回数组的长度
console.log(array1.unshift(22,66,77)); //添加多个
console.log(array1);

Array.prototype.slice()

slice() 方法提取指定起始位到结束位之间的元素(不包括end),并返回一个新的数组对象,原始数组不会被改变。
接受两个参数(start,end),一个参数时,默认提取指定开始位到最后一位

var animals = ['ant', 'bison', 'camel', 'duck', 'elephant'];
var arr2 = animals.slice(1,3)
//var arr2 = animals.slice(1)
console.log(animals)


//如果向两个数组任一中添加了新元素,则另一个不会受到影响
var animals = ['ant', 'bison', 'camel', 'duck', 'elephant'];
var arr2 = animals.slice(1,3)
console.log(animals)
console.log(arr2)
//animals.push('i love you')
//arr2.push('i no')
//console.log(animals)
//console.log(arr2)

Array.prototype.splice()

splice() 方法通过删除或替换现有元素或者原地添加新的元素来修改数组,并以数组形式返回被修改的内容。此方法会改变原数组。

var arr = [1,2,3,4,5,6]
console.log(arr)
//arr.splice(1,2)    //下标从1开始,截取掉2个(2是个数)
//arr.splice(2)       //下标从2开始,后边的所有
//arr.splice(1,5,7,8)  //下边从1开始,截取掉5个 ,并添加 7 和 8 两个
console.log(arr)

Array.prototype.reverse()

reverse() 方法将数组中元素的位置颠倒,并返回该数组。改变原数组。

var arr = [1,2,3]
console.log(arr)
arr.reverse()
console.log(arr)

相关文章

  • 数组的一些常用方法整理

    数组的一些常用方法整理 var arr = ['a', 'b', 'c', '1', '2', '3']; pus...

  • 数组一些常用方法整理

    一、Array.from() 方法从一个类似数组或可迭代对象中创建一个新的,浅拷贝的数组实例。将类数组对象转换为真...

  • 收集整理js常用工具函数

    (更新于2018.12.15 )持续更新... 收集整理的一些前端开发常用的工具函数 数组去重方法 数组快速排序 ...

  • 数组遍历

    之前讲了一些数组的方法,今天整理一下数组的遍历方法,有些方法不会用到,但是了解一下也是好的。 我们最常用的循环遍历...

  • js数组常用方法整理

    js数组常用方法整理 标签:js 数组 前言:这篇文章主要是一些归纳总结,大部分参考的是MDN的程序,也加了一些自...

  • Javascript:数组常用方法整理

    下面以var arr = ['x', 'u', 'e', 'y', 'i', 'n', 'g']为例 修改器方法:...

  • JavaScript数组常用方法整理

    整理一下常用的数组方法(含ES6) Array.from(arrayLike[, mapFn[, thisArg]...

  • JavaScript数组常用方法整理

    js数组常用方法整理 Array.push()  向数组的末尾添加一个或多个元素,并返回新的数组长度。原数组改变。...

  • 数组基础

    数组基础 新建数组 数组方法和属性 数组常用方法 数组的遍历方法

  • 数组

    数组 数组常用方法 数组去重

网友评论

      本文标题:数组一些常用方法整理

      本文链接:https://www.haomeiwen.com/subject/kqtshctx.html