JS 数组详解

2021-04-08  本文已影响0人  浅宇落

添加

let arr = ["html","css"];
// 1.push  向数组的后面添加
arr.push("js")
console.log(arr); // ["html", "css", "js"]
let arr = ["html","css"];
// unshift 向数组的前面添加值
arr.unshift("vue");
console.log(arr)
// ["vue", "html", "css"]
var arr = [1,2,3]
console.log(arr); // [1, 2, 3]
console.log(...arr); // 1 2 3

var a=[4,5,6]
var b = [7,8,9]
a.push(...b)  // 拼接数组
console.log(a); // [4, 5, 6, 7, 8, 9]
var arr = [1,2,3];
var c = [4,5,6];
var b = arr.concat(c);

console.log(arr);  // [1,2,3]
console.log(b);    // [1,2,3,4,5,6]

遍历

arr.forEach(function(item, index){
  console.log(item, index)
// html 0
// css 1
})
var arr = [2,3,4,5]
for(var i of arr){
  console.log(i);
/*
2
3
4
5
*/
}
var arr = [2,3,4,5]
var res = arr.map((item=>{
  return item*2
}))
console.log(arr);  // [2,3,4,5]
console.log(res);  // [4,6,8,10]
var arr = [1,2,3,4,5]
var res = arr.some(item =>{
  return item>3
})
console.log(res); // true
var arr = [1,2,3,4,5]
var str = arr.every(item => item >2)
console.log(str);  //false

删除

var arr = [1,2,3,4]
arr.pop()
console.log(arr) // [1,2,3]
var arr = [1,2,3,4]
arr.shift()
console.log(arr); // [2,3,4]

查询

//arr[index] 查询对应下标的值
var arr=[1,2,3];
console.log(arr[0]);  //1;
var arr=[1,2,3,4];
console.log(arr.indexOf(1)); // 0
//如果没有对应的值,则返回-1
// 返回boolean
var arr = [1,2,3,4]
console.log(arr.includes(5)); // false
// slice(startIndex,endIndex) 截取 包含开始不含结束
// slice(startIndex) 截取从startIndex开始到后面的所有值
var arr = [1,2,3,4]
console.log(arr.slice(1,3));  // [2,3]
console.log(arr.slice(1)); // [2,3,4]

sort 排序

var arr = [4,7,18,20,3]  // [3,4,7,18,20]
/* 升序算法 */
arr.sort((a,b)=>{
  return a-b;
})
console.log(arr);
var arr = [4,7,18,20,3]
arr.sort((a,b)=>{
  return b-a;
})
console.log(arr);

取最大值 Math.max( )

var arr = [1,2,3]
console.log(Math.max(...arr)); // 3
// 简单的算法实现
var arr = [4,3,2,1]
var minNum = arr[0]
for(var i=1;i<arr.length;i++){
  if(minNum>arr[i]){
    minNum=arr[i]
  }
}
console.log(minNum);

// Math.min(...arr) 取最小值
var arr = [4,3,1]
console.log(Math.min(...arr)); // 1

arr.reverse( ) 反转

var arr = ["html","css","javascript"]
console.log(arr.reverse());  // ["javascript","css","html"]

findIndex()

let arr=[1,2,3,4,5,6];
console.log(arr.findIndex(o=> o==20))
//找不到时返回 -1

console.log(arr.findIndex(o=> o==2))
//返回2的索引是 1

//若有多个符合条件的元素,则返回第一个元素索引。
console.log(arr.findIndex(o=> o>2))
//返回是第一个也就是3的索引 2
let arr1=[
    {name:"张三",age:16},
    {name:"张四",age:18},
    {name:"王五",age:20},
]

console.log(arr1.findIndex(o=> o.name=="张四"))
//返回张四的索引是 1

//若有多个符合条件的元素,则返回第一个元素索引。
console.log(arr1.findIndex(o=> o.age>19))
//返回是第一个也就是王五的索引 2

filter 方法 (筛选,过滤)

此方法也不会改变原始数组,会返回一个筛选成功匹配的元素组成的新数组

// 查找符合条件的元素,主要用于筛选
var arr =[1,2,3,4,5]
var res = arr.filter(item =>item>2)
console.log(res); // [3, 4, 5]

splice()

arr = ['a','b','c','d']
arr.splice(1,1) 
console.log(arr)
//['a','c','d'] 删除起始下标为1,长度为1的一个值,len设置的1,如果为0,则数组不变

arr.splice(1,2) 
console.log(arr)  //['a','d'] 删除起始下标为1,长度为2的一个值,len设置的2

//删除第一个
arr.splice(0,1) 
//删除最后一个
arr.splice(arr.length-1,1)
arr = ['a','b','c','d']
arr.splice(1,1,'ttt') 
console.log(arr)
//['a','ttt','c','d'] 替换起始下标为1,长度为1的一个值为‘ttt',len设置的1

arr.splice(1,2,'ttt') 
console.log(arr)
//['a','ttt','d'] 替换起始下标为1,长度为2的两个值为‘ttt',len设置的1
arr = ['a','b','c','d']
arr.splice(1,0,'ttt') 
console.log(arr)
//['a','ttt','b','c','d'] 表示在下标为1处添加一项‘ttt'

过滤

var a =[1,2,3,4,5,6,7,8,9]
var r = a.filter(o=> o<5)
console.log(r)

//输出结果:
[1, 2, 3, 4]
var aa =[
{id:1,name:"张三"},
{id:2,name:"李四"},
{id:3,name:"王五"}
]
var bb = aa.filter(o=> o.id<3)
console.log(bb)

//输出结果
0: {id: 1, name: "张三"}
1: {id: 2, name: "李四"}

数组截取

var array = [1, 2, 3, 4, 5]
const subArr = array.slice(0, 1)
console.log(subArr) // [1]

const subArr = array.slice(0, 10)
console.log(subArr) // [1, 2, 3, 4, 5]

const subArr = array.slice(0, -2)
console.log(subArr) // [1, 2, 3]

join()

join() 方法用于把数组中的所有元素放入一个字符串。
元素是通过指定的分隔符进行分隔的。

arrayObject.join(separator)
var list = ["赵","钱","孙"]
console.log(list.join())

//输出结果: 赵,钱,孙

var list = ["赵","钱","孙"]
console.log(list.join("|"))
//输出结果  赵|钱|孙

console.log(list.join("==="))
//输出结果  赵===钱===孙
上一篇下一篇

猜你喜欢

热点阅读