数组字符串常用方法总结

101 阅读2分钟

var city1 = ["北京", "上海", "广州", "深圳"]

push()添加至末尾

city1.push("郑州")
 
console.log(city1)

pop() 用于删除并返回数组的最后一个元素

city1.pop()

console.log(city1)

unshift()用于添加至数组开头

city1.unshift("郑州")

console.log(city1)

shift()用于把数组的第一个元素从其中删除,并返回第一个元素的值

city1.shift()
 
console.log(city1)

sort()用于对数组进行正序排列

var arr = [23, 45, 12, 56, 39]

arr.sort((a, b) => {
  // console.log(a, b, "****")
  // return a - b
  return b - a
})

reverse()用于翻转数组

var arr = ["北京", "上海", "广州", "深圳"]
console.log(arr.reverse())

splice()和slice()数组元素的截取和替换

var arr = ["北京", "上海", "广州", "深圳"]

var result = arr.slice(1,2)            //截取: 第2个参数是下标
var result = arr.splice(1, 1, "杭州")     //替换:第2个参数是length
console.log(result)

数组下标相关的函数

indexOf用于从头开始计算遇到的第一个,而lastindexOf从length的长度开始计算,includes查找是否包含给定的值

var person = ["唐僧", "八戒", "悟空", "八戒", "沙僧", "八戒"]

console.log(person.indexOf("八戒"))
console.log(person.lastIndexOf("八戒"))
console.log(person.includes("白龙马"))

数组循环

var arr = [
  { id: 1001, name: "八戒", weight: 200 },
  { id: 1002, name: "悟空", weight: 120 },
  { id: 1003, name: "唐僧", weight: 80 },
  { id: 1004, name: "沙僧", weight: 160 },
]

every函数:所有item都满足条件,返回true;只要有一个不满足条件,则返回false

var result = arr.every((item) => {
  // return item.weight > 50
  // return item.weight > 100
  return item.weight > 250
})
console.log(result)

some:只要有一个满足条件,就返回true;所有item都不满足条件,返回false

var result = arr.some((item) => {
  // return item.weight > 100
  // return item.weight > 180
  return item.weight > 250        //所有item都不满足条件,返回false
})
console.log(result)

map函数:返回处理之后的数组,映射新数组

var arr = [1, 4, 5, 7]
var result = arr.map(item => {
  return item ** 3
})
console.log(result)

reduce的使用:求和

var arr = [1, 4, 5, 7]

total是和,而item则为遍历出的每一项

var result = arr.reduce((total, item) => {
  return total += item;
},0)
 
console.log(result)

寻找第一个满足条件的item

var result = arr.find((item, index) => {
  // console.log(item, index)
  return item.weight > 100
})
console.log(result)

寻找所有满足条件的item

var result = arr.filter(item => {
  return item.weight > 100
})

var result = arr.filter(item => item.weight > 100)
console.log(result)

forEach()类似for循环,用于遍历数组

arr.forEach((item, index) => {
  // item.weight = 100       //修改item中已经存在的属性weight
  item.age = 200              //为item中添加新属性
})
console.log(arr)

for循环

for (var i = 0; i < arr.length; i++) {
  // console.log(i)
  console.log(arr[i])
}

使用in关键字遍历数组:每一项是下标

for (var k in arr) {     
  // console.log(k)
  console.log(arr[k])
}

使用of遍历数组:循环出的是数组的每一项

for (i of arr) {
  console.log(i)
}

使用in可以遍历对象

var obj = { uname: "张三", age: 21 }

for (var k in obj) {
  // console.log(k)
  console.log(obj[k])
}

for (var i of obj) {
  console.log(i)
}

字符串和数组相互转换

var str = "北京 上海 广州 深圳"
var arr = str.split(" ")      //字符串转数组

var newStr = arr.join("-")    //数组转字符串
console.log(newStr)
console.log(arr)

截取字符串

var str = "北京欢迎你"
var result = str.substr(2, 2)     //第二个参数是length
console.log(result)

var result = str.substring(2, 4)  //第二个参数是下标[start,end]左闭右开区间
console.log(result)

替换 replace

var str="北京非常欢迎你"
var result=str.replace("非常","十分")
console.log(result)