javascript数组的各种操作

数组的各种操作

##数组简介

  1. 数组是对象的一种
  2. 数组对象是使用单独的变量名来存储一系列的值,
    ##数组的创建
var a=[];或者
var a=new Array();

##数组的各种方法
concat()
用于数组的合并,两个或者多个数组的合并。

var a=[1,2,3];
var b=[4,5,6];
var c=[7,8,9];
var d=a.concat(b);//两个数组合并
console.log(d);//(6) [1, 2, 3, 4, 5, 6]
var e=a.concat(b,c);//多个数组合并
console.log(e);//(9) [1, 2, 3, 4, 5, 6, 7, 8, 9]
console.log(a);//(3) [1, 2, 3]不会改变原来的值,只是返回合并的值

join()
用于将数组以一种字符连接成字符串。

Array.join();
var a=[1,2,3];
var b=a.join('-');//不会改变原来的值,即不会改变a的值,知识返回处理好的字符串。
console.log(a,b);//(3) [1, 2, 3] "1-2-3"
var c=a.join();//如果括号中不写则默认使用’,‘逗号进行连接。
console.log(c);//1,2,3

pop
用于删除数组的最后一个元素,改变原来的是数组,返回删除的元素。

Array.pop();
var a=[1,2,3,4,5,6,7,8,9];
var b=a.pop();//会改变原来的数组
console.log(a,b);//(8) [1, 2, 3, 4, 5, 6, 7, 8] 9返回删除的元素

shift
删除并返回第一个元素,会改变原来的元素。

Array.shift();
var a=[1,2,3,4,5,6,7,8];
var b=a.shift();//返回删除的值,改变原来的值
console.log(a,b);//(7) [2, 3, 4, 5, 6, 7, 8] 1

push
向数组的末尾添加一个或更多元素,并返回新的长度

Array.push();//括号中填写要添加的数据,可以是字符串、数字、数组、对象等
var a=[1,2,3];
var b=a.push(1);console.log(a,b);//(4) [1, 2, 3, 1] 4
var c=a.push([3,4]);
console.log(a,c);//(5) [1, 2, 3, 1, [3,4]] 5返回新数组的长度。

unshift
向数组的开头添加一个或更多元素,并返回新的长度

Array.unshift()//括号中填写要添加的数据,可以是字符串、数字、数组、对象等
var a=[1,2,3,4,5];
var b=a.unshift(1);
var c=a.unshift([6,7]);
console.log(a,b,c);//[[6.7], 1, 1, 2, 3, 4, 5] 6 7返回新数组的长度

splice()
splice() 方法向/从数组中添加删除项目,然后返回被删除的项目。

arrayObject.splice(index,howmany,item1,.....,itemX)//index数组的索引,如果大于数组长度说明是添加。howmany删除的数量,item1想数组添加的新项目

slice()
slice() 方法可从已有的数组中返回选定的元素。

Array.slice(start,end)//填写索引值
var a=[1,2,3,4,5,6,7];
var b=a.slice(3,6);
console.log(a,b);//(7) [1, 2, 3, 4, 5, 6, 7] (3) [4, 5, 6]不包含索引值后面的元素,从0开始

sott()
sort() 方法用于对数组的元素进行排序。如果调用该方法时没有使用参数,将按字母顺序对数组中的元素进行排序,说得更精确点,是按照字符编码的顺序进行排序。要实现这一点,首先应把数组的元素都转换成字符串(如有必要),以便进行比较

Array.sort()//用法
var a=[3,2,55,44,33,2567];
var b=a.sort(function(a,b){return a-b});
console.log(a,b);//(6) [2, 3, 33, 44, 55, 2567] (6) [2, 3, 33, 44, 55, 2567] 会改变原来的值,返回的也是排完序的值。 从小到大排序
var b=a.sort(function(a,b){return b-a});
console.log(a,b);(6) [2567, 55, 44, 33, 3, 2] (6) [2567, 55, 44, 33, 3, 2]//从大到小排序

toString
toString() 方法可把数组转换为字符串,并返回结果。

Array.toString();//数组之间使用‘,’连接
var a=[1,2,3,4,5];
var b=a.toString();
console.log(a,b);//(5) [1, 2, 3, 4, 5] "1,2,3,4,5" 返回的是使用‘,’连接的字符串 并不会改变原来的值

some
some() 方法用于检测数组中的元素是否满足指定条件
some() 方法会依次执行数组的每个元素:
如果有一个元素满足条件,则表达式返回true , 剩余的元素不会再执行检测。
如果没有满足条件的元素,则返回false。
注意: some() 不会对空数组进行检测。
注意: some() 不会改变原始数组。

array.some(function(currentValue,index,arr),thisValue)

  • currentValue 必须:当前元素
  • arr 当前元素的数组对象
  • thisValue 对象作为该执行回调时使用,传递给函数,用作 “this” 的值。如果省略了 thisValue ,“this” 的值为 “undefined”.

//
//index 当前元素
//arr 当前元素的数组对象
//thisValue 对象作为该执行回调时使用,传递给函数,用作 "this" 的值。如果省略了 thisValue ,"this" 的值为 "undefined".

let arr=[3,4,5,6,7,8,10];
let b=arr.some((row)=>{
   return row>8});
 console.log(arr,b);//[3, 4, 5, 6, 7, 8, 10] true

every

  • 进行数组循环操作,当所有的条件都满足,返回true,否则false

array.some(function(currentValue,index,arr),thisValue)

  • currentValut,当前值,必填
  • index 索引值
  • arr 当前元素的数组对象
  • thisValue 可选。对象作为该执行回调时使用,传递给函数,用作 “this” 的值。
    如果省略了 thisValue ,“this” 的值为 “undefined”
let arr = [3,4,5];
let result = arr.every((row,index,arr)=>{return row >3 })
// row:3,index:0,arr:[3,4,5]就是原始数据,因为当前第一个就不满足,所以只是循环了一次。
//执行顺序是从开始进行,如果前面的符合条件就会向下执行,如果不符合就会输出false并且停止执行。

filter
返回数组中满足回调函数中指定的条件的元素

var new_array = arr.filter(callback(element[, index[, array]])[, thisArg])

  • 参数
    参数 | 定义
    -------|--------
    array1|必须,一个数组对象
    callbbackfn|必须,一个接受最多三个参数的函数,对于数组中的每一个元素,filter都会调用一次callbackfn
    thisArg|可选,可在 callbackfn 函数中为其引用 this 关键字的对象。如果省略 thisArg,则 undefined 将用作 this 值。

  • 返回值
    一个包含回调函数为其返回 true 的所有值的新数组。如果回调函数为 array1 的所有元素返回 false,则新数组的长度为 0。

//正确写法
var a=[1,2,3,4,5,6,7,8,9];
var b=a.filter(arr=>arr>4);
console.log(a,b);//(9) [1, 2, 3, 4, 5, 6, 7, 8, 9] (5) [5, 6, 7, 8, 9]
//错误写法
var a=[1,2,3,4,5,6,7,8,9];
var b=a.filter((arr)=>{arr>4})console.log(a,b);
  1. 在filter中不可以使用带()的箭头函数。
  2. 不需要写return

someevery总结

  • some全部正确才会返回true,只要有一个不符合就不会向下执行,直接返回false
  • every有一个符合就返回true,只要有一个符合就不会向下执行,全部的符合条件,才算都符合返回false
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

sunqy1995

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值