Web初级——数组对象常用api
js数组常用api
-
连接函数:join("连接符")
var array = [1,2,3,4,5] console.log(array.join("+"))
-
拼接函数:concat(str|array)
参数是数据的话,则把数据拼接到数组后,如果是数组元素,则将参数数组的元素拼接到该数组后而不是参数数组
var a = [1,2,3]; a.concat(4,5); // [1,2,3,4,5] a.concat([4,5]); // [1,2,3,4,5] a.concat(4, [5, [6, 7]]); // [1,2,3,4,5,[6,7]]
-
截取函数:arr.slice(start[end])
end可省略,表示从start位置一直截取到末尾
var array = [1,2,3,4,5] console.log(array.slice(3))//返回一个新数组
-
删除、插入、替换:arr.splice(start, deleteCount [,value1,value2...])
(1)直接修改原数组。
(2)返回所有被删除元素组成的子数组。
(3)如果 deleteCount 是 0,表示插入元素,插入的元素会排在 start 处元素之前。
(4) 如果是删除,从 start 开始,并包含 start 处的元素。
var array2 = [1,2,3,4,5,6,7,8,9] console.log(array2.splice(2,3)) console.log(array2) array2.splice(2,0,3,4,5) console.log(array2)
-
翻转数组:reverse()
修改原数组
-
排序:sort()
- 默认按照元素第一位ascll码升序排列
可以设置下列的比较器函数来控制升序,降序或者打乱。
(1)arr.sort(function(a,b){return a-b;}); 升序(只限数组中是数字或者数字字符串)。
(2)arr.sort(function(a,b){return b-a;}); 降序(只限数组中是数字或者数字字符串)。
(3)arr.sort(function(){
return Math.random()>.5 ? 1 : -1;
});随机打乱数组(数组中可以是任何数据类型)
var array3 = [5,4,1,32,6,2,4,54,57,8,23] array3.sort() console.log(array3) array3.sort(function(){ return Math.random()>.5 ? 1 : -1; }) console.log(array3) array3.sort(function(a, b) { return b-a; }) console.log(array3)
-
查找:indexOf()或者lastIndexOf(value[,from])
返回value在数组中的索引,没有找到返回-1。
var array = [1,2,3,4,5] console.log(array.indexOf(3))
-
循环数组:forEach(function(value,index,arr){})
map(function(value,index,arr){})
-
数组转字符串:toString()
将数组用逗号连接,类似于join(",")
-
开头入栈:unshift(number,...)
数组开头插入元素
-
开头出栈:shift()
弹出最开头元素
-
结尾入栈:push(number,...)
-
结尾出栈:pop()
-
全部条件验证:every(item=>{return 条件})
验证数组元素是否全部符合条件
var array4 = [5,4,1,32,6,2,4,54,57,8,23] console.log(array4.every(item=>{ return item<90 })) console.log(array4.every(item=>{ return item>10 }))
-
部分条件验证:some(item=>{return 条件})
有一个元素满足条件则退出
-
条件过滤:filter(item=>{return 条件})
满足条件的子元素组成一个数组返回
var array4 = [5,4,1,32,6,2,4,54,57,8,23] console.log(array4.filter(item=>{ return item>10 }))
-
功能性遍历:reduce()
累加功能:
let a = [1,2,3,4].reduce(function(x, y) { return x + y; });
数组转对象:
const arr = [ {id: '1', name: 'Jim'}, {id: '2', name: 'Lily'}, {id: '3', name: 'Allen'} ] let obj = arr.reduce((acc, current) => { return {...acc, [current.id]: current}; }, {}) console.log(obj) // { // 1: {id: '1', name: 'Jim'}, // 2: {id: '2', name: 'Lily'}, // 3: {id: '3', name: 'Allen'} // }
将二维数组扁平化为一维数组
const array1 = [ ['没','有', '共','产','主义'], ['就', '没', '有', '新', '中','国'] ]; let array2 = array1.reduce((acc, current) => { return acc.concat(current); }, []) console.log('arrLevel1', arrLevel1) // -> ['没','有', '共','产','主义','就', '没', '有', '新', '中','国']
-
找元素:find(item=>{return 条件})
和some不同的是,他返回的是元素
-
找元素(下标):findIndex(item=>{return 条件})
和find不同的是,他返回的是元素下标
-
找元素:includes(value)
和some不同的是,他参数是元素
-
转化为本地化字符串toLocaleString()
对象常用api
Object对象
-
属性合并:assign(目标对象,属性源....)
let target = {"name":"张三","年龄":"18"} let sourse = {"sex":"男","职业":"程序员"} Object.assign(target,sourse) console.log(target)
-
获取对象原型:getPrototypeOf(obj)
-
判断对象是否可扩展(是否可在上面新增属性):isExtensible(obj)
-
阻止对象被扩展:preventExtensions(obj)
-
判断两个值是否相同:is(value1,value2)
-
返回对象可枚举属性的数组:values(obj)
String对象
-
返回指定位置的字符:charAt(number)
-
返回指定位置字符的Unicode编码:charCodeAt(number)
-
将Unicode码转换为字符串:fromCharCode()
-
选取字符串:slice(start,end)
类似于数组的截取函数slice
-
分隔数组:split(“?”)
将字符串以"?"分割成数组
var a = "没有共产dang,就没有新中国!" console.log(a.split(",")) console.log(a.split(""))
-
返回指定字符串的第一个位置:indexOf()
-
大写转换:toLowerCase()
-
小写转换:toUpperCase()
var str = "AbCdefGhIJklmN"; console.log(str.toUpperCase()); console.log(str.toLowerCase());
- 正则匹配:match()
- 字符替换:replace()
- 字符匹配:search()
Number对象
-
数字转化:Number()
将括号里的字符转化为数字类型
-
转化字符:toString()
将数字转化为字符串
-
四舍五入:toFixed(n)
小数点后n位四舍五入
-
整数转换:parseInt()
-
浮点数转换:parseFloat()
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)