常用数组的方法

会改变原数组的方法

1.push( ) 方法

**说明:向数组的末尾添加一个或多个元素,并返回新的长度 **

let array=[1,2];
let arrayChange=array.push("3"); 
console.log(arrayChange) // 返回数组改变后的长度
onsole.log('array :>> ', array); // [1,2,'3']console.log(arrayChange) 3 --- 返回的是数组改变后的值

2.unshift( )方法

说明:将参数添加到原数组开头,并返回数组长度

let array=[1,2];
let arrayChange=array.unshift("3");
console.log(array) //[3,1,2]
console.log(arrayChange) 3---返回的结果就是数组改变后的长度:3

3.pop( )方法

说明:pop方法从数组中删除最后一个元素,并返回该元素的值。此方法更改数组的长度

let array=[1,2,3,4];
console.log(array.pop()) //4 返回被删除得最后元素
console.log(array) //[1,2,3] //返回删除最后一个元素后得数组,更改了数组得长度

4.shift( )方法

说明:shift方法从数组中删除第一个元素,并返回该元素的值。此方法更改数组的长度

返回值:从数组中删除的元素; 如果数组为空则返回[undefined]

let array=[1,2,3,4];
console.log(array.shift()) //1 返回被删除得第一个元素
console.log(array) //[2,3,4] //返回删除第一个元素后得数组,更改了数组得长度

5.reverse( )

说明: reverse方法用于颠倒数组中元素的顺序,该方法会改变原来的数组

let values = [1,2,3,4,5];
values.reverse();
console.log(values);//[5,4,3,2,1]

6.sort( )

说明:sort方法用原地算法对数组的元素进行排序,并返回数组。默认排序顺序是在将元素转换为字符串,然后比较它们的UTF-16代码单元值序列时构建的,原数组将会被改变

sotr的参数函数本身接受两个参数,表示进行比较的两个数组成员。如果该函数的返回值大于 0,表示第一个成员排在第二个成员后面;其他情况下,都是第一个元素排在第二个元素前面。

let values = [2,3,44,55,12];
console.log(values.sort());//[12, 2, 3, 44, 55] 

sort方法可以使用函数表达式方便书写

var numbers = [4, 2, 5, 1, 3];
numbers.sort(function(a, b) {
  return a - b;
});
console.log(numbers); 


也可以写成:
var numbers = [4, 2, 5, 1, 3]; 
numbers.sort((a, b) => a - b); 
console.log(numbers);
// [1, 2, 3, 4, 5]

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

说明: 当splice传递两个参数的时候,参数1:开始删除的下标位置,参数2:删除数组元素的个数,返回新的数组。当splice传递三个参数的时候,参数1:开始删除的下表位置,参数2:删除数组元素的个数,参数3:向数组添加的新元素。注意数组下标0开始。

var arr = [1,2,3,4,5]
var arr2 = arr.splice(2,2) 
console.log('arr初始值',arr) // 原数组返回删除之后的元素[1,2,5]
console.log('arr2改变之后的值',arr2) 返回被删除的元素[3,4]

var arr3 = arr.splice(2,0,'增加一个值')
console.log('arr3改变之后的值',arr3) // []  如果第二个参数0 或者负数,则不移除元素。这种情况下,至少应添加一个新元素
console.log(arr) // 返回增加之后的新数组[1,2,'增加一个值',3,4,5]

var arr4 = arr.splice(-2,1) 
console.log(arr4) // 从倒数第二个开始,删除一个元素,但不包括最后一个, 所以打印数组[4] 
coonsole.log(arr) // 返回被删除后的数组 [1,2,3,5]

不会修改数组的方法:

1.concat( ): 方法将一个或多个字符串与原字符串连接合并,形成一个新的字符串并返回。

该方法也可以连接数组, 不会修改原数组

数组:

var num1 = [1,2,3,4];

var num2 = [5,6,7,8];

console.log('concat:>> ',  parents.concat(brothers)); //[1,2,3,4,5,6,7,8]

字符串:

var num1 = '1234'

var num2 = '5678'

console.log('concat:>> ',  num1.concat(num2));

2.join( ) 方法将数组中所有元素连接为一个字符串,元素是通过指定的分隔符进行分隔的。

var array = [1,2,3,4];
console.log('array:>> ',  array.join()); //字符串1234

3.slice(start,end) 方法从某个已有的数组返回选定的元素,从start位开始返回到end(包括start不包括end)如果是负数,表示从数组尾部进行计算(同样:包括start不包括end),请注意,该方法并不会修改数组,而是返回一个子数组。

var array = [1,2,3,4];
console.log('array:>> ',  array.slice(1,2)); //从下标第一个位置开始,到下标为2,(不包括2),作为原数组,新数组不变
console.log(array.slice(-2,-1)) // 打印3  表示抽取了原数组中的倒数第二个元素到最后一个元素(不包含最后一个元素,也就是只有倒数第二个元素)。

4.map( )方法创建一个新数组,其结果是该数组中的每个元素是调用一次提供的函数后的返回值。函数会被自动传入三个参数:数组元素,元素索引,原数组本身

var numbers = [1,2,3,4,5,4,3,2,1];
var everyResult = numbers.map(function(item,index,arr){
    return item * 2
})
console.log(everyResult);// [2,4,6,8,10,8,6,4,2]

5.forEach( )****对数组的所有成员依次执行参数函数,该函数接受三个参数:**value****key**、整个数组。

var a = ['a', 'b', 'c'];
a.forEach(function(value,key,a){
    console.log(value,key,a)
})
// a 0 (3) ["a", "b", "c"]
// b 1 (3) ["a", "b", "c"]
// c 2 (3) ["a", "b", "c"]

6.some( ) 对数组的每一项运行给定函数,有一项符合条件返回true,

var numbers = [1,2,3,4,5,4,3,2,1];
var everyResult = numbers.every(function(item,index,arr){
    return (item > 2)
})
console.log(everyResult);// true

7.every( )对数组的每一项运行给定函数,每一项都符合条件返回true,有一项不符合或全部不符合返回false

var numbers = [1,2,3,4,5,4,3,2,1];
var everyResult = numbers.every(function(item,index,arr){
    return (item > 2)
})
console.log(everyResult);// false

8.filter( )对数组的每一项运行给定函数,返回函数会返回true的项组成的数组

var numbers = [1,2,3,4,5,4,3,2,1];
var everyResult = numbers.filter(function(item,index,arr){
    return (item > 2)
})
console.log(everyResult);// [3,4,5,4,3]
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 214,504评论 6 496
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,434评论 3 389
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 160,089评论 0 349
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,378评论 1 288
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,472评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,506评论 1 292
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,519评论 3 413
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,292评论 0 270
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,738评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,022评论 2 329
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,194评论 1 342
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,873评论 5 338
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,536评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,162评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,413评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,075评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,080评论 2 352