数组经常使用要领总结

不会转变原数组的要领

slice() 要领返回一个新的数组对象,这一对象是一个由 begin和 end(不包含end)决议的原数组的浅拷贝。原始数组不会被转变。

//语法:
arr.slice();
// [0, end]

arr.slice(begin);
// [begin, end]

arr.slice(begin, end);
// [begin, end)

//示例
var fruits = ['Banana', 'Orange', 'Lemon', 'Apple', 'Mango'];
var citrus = fruits.slice(1, 3);

// fruits contains ['Banana', 'Orange', 'Lemon', 'Apple', 'Mango']
// citrus contains ['Orange','Lemon']

concat() 要领用于兼并两个或多个数组。此要领不会变动现有数组,而是返回一个新数组。
concat要领建立一个新的数组,它由被挪用的对象中的元素构成,每一个参数的递次依次是该参数的元素(假如参数是数组)或参数自身(假如参数不是数组)。它不会递归到嵌套数组参数中。

concat要领不会转变this或任何作为参数供应的数组,而是返回一个浅拷贝,它包含与原始数组相结合的雷同元素的副本。 原始数组的元素将复制到新数组中,以下所示:

对象援用(而不是现实对象):concat将对象援用复制到新数组中。 原始数组和新数组都援用雷同的对象。 也就是说,假如援用的对象被修正,则变动关于新数组和原始数组都是可见的。 这包含也是数组的数组参数的元素。
数据类型如字符串,数字和布尔(不是String,Number 和 Boolean 对象):concat将字符串和数字的值复制到新数组中。

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

console.log(array1.concat(array2));
// expected output: Array ["a", "b", "c", "d", "e", "f"]

遍历数组的要领

forEach() 要领对数组的每一个元素实行一次供应的函数。

//语法
arr.forEach(callback,thisArg);
// callback
// 为数组中每一个元素实行的函数,该函数吸收三个参数:
    // 1.currentValue
    // 数组中正在处置惩罚的当前元素。
    // 2.index可选
    // 数组中正在处置惩罚的当前元素的索引。
    // 3.array可选
    // forEach() 要领正在操纵的数组。
// thisArg可选
// 可选参数。当实行回调函数时用作 this 的值(参考对象)

// 示例
var array1 = ['a', 'b', 'c'];
array1.forEach((element) => console.log(element));

转变原数组的要领

splice() 要领经由过程删除或替代现有元素或许原地增加新的元夙来修正数组,并以数组情势返回被修正的内容。此要领会转变原数组。

// 示例

var myFish = ["angel", "clown", "mandarin", "sturgeon"];
var removed = myFish.splice(2, 0, "drum");

// 运算后的 myFish: ["angel", "clown", "drum", "mandarin", "sturgeon"]
// 被删除的元素: [], 没有元素被删除


var myFish = ['angel', 'clown', 'drum', 'sturgeon'];
var removed = myFish.splice(2, 1, "trumpet");

// 运算后的 myFish: ["angel", "clown", "trumpet", "sturgeon"]
// 被删除的元素: ["drum"]
    
    原文作者:fsme
    原文地址: https://segmentfault.com/a/1190000019075566
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞