Array/String常用方法

158 阅读3分钟
// Array 数组常用方法 两个注意点 
// (1) sort()排序会直接修改原数组 
// (2) splice()不会返回修改后的数组,也是直接修改原数组
let arr = [1,2,3]
// 1. Array.prototype.map(v,i)  迭代数组,返回新数组,新数组里面的元素是处理之后的值,经常用于处理数据
console.log(arr.map(v=>v+1))   // [2,3,4]
// 2. Array.prototype.forEach(v,i)   遍历数组, 不返回,用于不改变值,经常用于查找打印值
arr.forEach((v,i)=>console.log(v,i)) // 1 0 \n  2 1 \n 3 2
// 3. Array.prototype.filter()   过滤数组 筛选数组元素,并生成新数组
console.log(arr.filter(v=>v>1)) // [2, 3]
// 4. Array.prototype.reduce((s,i)=>s+i,起始值(不写则默认数组第一个元素))
console.log(arr.reduce((s,i)=>s+i,0))  // 6
// 5. Array.prototype.join("分隔符")  数组转换为字符串
console.log(arr.join("|")) // 1|2|3
// 6. Array.prototype.every()  检测数组中所有元素是否都符合指定条件,返回布尔值,都满足返回true,否则为false
console.log(arr.every(v=>v>2)) // false
// 7. Array.some()  检测数组中的元素是否满足指定条件,有一个满足返回true,没有满足条件的返回false
console.log(arr.some(v=>v>2))  //true
// 8. Array.find()  返回满足条件的第一个元素的值,否则为undefined
console.log(arr.find(v=>v===2))  // 2
console.log(arr.find(v=>v===4))  // undefined
// 9. Array.findIndex()  返回满足条件的第一个元素的索引,没有返回 -1
console.log(arr.findIndex(v=>v===2)) // 1
console.log(arr.findIndex(v=>v===4)) // -1
// 10. Array.concat(arr1) 合并数组
console.log(arr.concat([4,5,6]))  //[1, 2, 3, 4, 5, 6]
console.log([...arr,...[4,5,6]])  //[1, 2, 3, 4, 5, 6]
// 11. Array.sort() 数组排序
console.log(arr.sort((a,b)=>a-b)) //[1, 2, 3] 顺序
console.log(arr.sort((a,b)=>b-a)) //[3, 2, 1] 逆序
// 注意sort排序会直接改变原数组!!! 此时arr = [3,2,1]
// 12. Array.reverse() 反转数组
console.log(arr.reverse()) //[1, 2, 3]
// 13. Array.splice(开始位置,个数) 增加或删除数组元素
// let arr13 =["1","2","3"].splice(1,0,"4")// 
console.log(arr13)  // []
let arr13 = ["1","2","3"]arr13.splice(3,0,"4") 
console.log(arr13)  //['1', '2', '3', '4']
// 值得注意的是splice()方法不会返回修改后的数组,直接输出为空!!!
console.log(["1","2","3"].splice(1,0,"4"))  // []
// 14. Array.slice(包括begin,不包括end) 读取数组元素
console.log(["4","5","6"].slice(1,2))  // ['5']
// 15. Array.toString()
console.log([1,2,3].toString())  // 1,2,3
// 16. Array.push() 追加到最后   pop()删除最后一个
// 17. Array.unshift() 添加到第一个  shift()删除第一个
// 18. Array.indexOf()  没找到指定元素则返回 -1
// 19. Array.fill(value, start, end)  将一个固定值替换数组的元素。

String常用方法

let str = 'This is a string'        
console.log(str.length)  //16        
// 1.split("分隔符")        
console.log(str.split(" "));  // ['This', 'is', 'a', 'string']        
// 2.startsWith/endsWith() 以指定字符开头或结尾        
console.log(str.startsWith("T"))  // true        
// 3.indexOf("查找元素",起始位置) 查找指定字符返回索引值        
console.log(str.indexOf("a",0))  // 8        
// 4.substring(开始索引,结束索引(不包含结束位置))        // substring() 注意都是小写字母        
console.log(str.substring(5,7)) // is        
// 5.toUpperCase() 字母转换为大写        
console.log(str.toUpperCase())  // THIS IS A STRING        
// 6.toLowercase() 字母转换为小写        
console.log(str.toLowerCase())  // this is a string        
// 7.includes() 判断是否包含指定字符        
console.log(str.includes("a"))  // true        
// 8.replace() 替换字符串,支持正则匹配        
const regex1 = /is/        
console.log(str.replace(regex1,"it"))  // Thit is a string        
// 9.match() 检测匹配的结果并返回,支持正则匹配,没有为空 null        
// g 是全部 i 忽略大小写        
const regex2 = /[A-C]/gi        
const regex3 = /[A-C]/        
console.log(str.match(regex2))  // ['a']
console.log(str.match(regex3))  // null
// 10.trim() 清除字符串两端的空格,返回一个新数组
let str10 = '  m  m'
console.log(str10.trim())  //m  m

Object常用方法

let gender = "男"        
let obj = {
    name:"张三",            
    gender,            
    age: 26,
    hobby(){                
        console.log("篮球")            
    }        
}         
// 1.获得所有属性名        
console.log(Object.keys(obj))  // ['name', 'gender', 'age', 'hobby']        
// 2.获得所有属性值        
console.log(Object.values(obj))  //  ['张三', '男', 26, ƒ]        
// 3.对象拷贝        
let OBJ = {}        
Object.assign(OBJ,obj)          
console.log(OBJ)// 浅拷贝 {name: '张三', gender: '男', age: 26, hobby: ƒ}        
// 4.对象合并,常用来给对象添加属性        
let newOBJ = Object.assign({price:200},obj)          
console.log(newOBJ) //{price: 200, name: '张三', gender: '男', age: 26, hobby: ƒ}        
// for in遍历对象        
for(let k in obj){            
// console.log(k)             
// console.log(obj[k])        
}              
// 5.对象方法  is()  ===        
console.log(NaN===NaN)  // false        
console.log(Object.is(NaN,NaN))  // true