通用JS(一)
遍历数组forEach
var fruits = ['Apple', 'Banana'];
fruits.forEach(function(item,index,fruits) {
console.log(item,index);
})
// Apple 0
// Banana 1
添加元素到数组的末尾
var newArray = fruits.push('Orange');
// ["Apple", "Banana", "Orange"]
添加元素到数组的头部
var newArray = fruits.unshift('Orange');
// ["Orange","Apple", "Banana"]
删除数组末尾的元素
var first = fruits.pop();
删除数组首个元素
var first = fruits.shift();
找出某个元素在数组中的索引
fruits.push('Mango');
// ["Strawberry", "Banana", "Mango"]
var pos = fruits.indexOf('Banana');
// 1
通过索引删除某个元素
var removedItem = fruits.splice(pos,1);
// ["Strawberry", "Mango"]
从一个索引位置删除多个元素
var vegetables = ['Cabbage', 'Turnip', 'Radish', 'Carrot']; console.log(vegetables); // ["Cabbage", "Turnip", "Radish", "Carrot"] var pos = 1, n = 2; var removedItems = vegetables.splice(pos, n); // this is how to remove items, n defines the number of items to be removed, // from that position(pos) onward to the end of array. console.log(vegetables); // ["Cabbage", "Carrot"] (the original array is changed) console.log(removedItems); // ["Turnip", "Radish"]
复制一个数组
var shallowCopy = fruits.slice()
属性
Array.length
Array 构造函数的length属性,其值为(注意该属性为静态属性,不是数组实例的length属性)
get Array[@@species]返回Array构造函数
Array.prototype 通过数组的原型对象可以为所有数组添加属性
方法
Array.from() 从数组对象或者可迭代对象中创建一个新的数组实例。Array.isArray()用来判断某个变量是否是一个数组。
Array.of()根据一组参数来创建新的数组实例,支持任意的参数数量和类型。
数组实例
所有数组实例都会从 Array.prototype 继承属性和方法。修改Array的原型会影响到所有的数组实例。
属性
Array.prototype.constructor 所有的数组实例都继承了这个属性,他的值就是Array,表明了所有的数组都是由Array构造出来的。
Array.prototype.length 上面说了,因为 Array.prototype 也是个数组,所以他也有 length属性,这个值为0,因为他是个空数组。
方法
修改器方法
这些方法会改变数组:
Array.prototype.copyWithin()在数组内部,将一段元素序列拷贝到另一段元素序列上,覆盖原有的值。
Array.prototype.fill() 将数组中指定区间的所有元素的值,都替换成某个固定的值。
Array.prototype.pop() 删除数组的最后一个元素,并返回这个元素。
Array.prototype.push() 在数组的某位增加一个或多个元素,并返回数组的新长度
Array.prototype.reverse() 颠倒数组中元素的排列顺序,即原先的第一个变为最后一个,原先的最后一个变为第一个。
Array.prototype.shift()删除数组的第一个元素,并返回这个元素。
Array.prototype.sort()对数组元素进行排序,并返回当前数组。
Array.prototype.splice()在任意的位置给数组添加或删除任意个元素。
Array.prototype.unshift()在数组的开头增加一个或多个元素,并返回数组的新长度。
分割字符串split
限制返回值中的分割元素数量
下例中,split
查找字符串中的 0 或多个空格,并返回找到的前 3 个分割元素(splits)。
1 2 3 4 5 6 7 8 9 | var myString = "Hello World. How are you doing?" ; var splits = myString.split( " " , 3); console.log(splits); // [ "Hello" , "World." , "How" ] 靠正则来分割使结果中包含分隔块 如果 separator 包含捕获括号(capturing parentheses),则其匹配结果将会包含在返回的数组中。 separator |
1 2 3 4 5 6 7 8 | var myString = "Hello 1 word. Sentence number 2." ; var splits = myString.split(/(\d)/); console.log(splits); [ "Hello " , "1" , " word. Sentence number " , "2" , "." ] 用split()来颠倒字符串顺序 const str = 'asdfghjkl' ; |
const strReverse = str.split('').reverse().join(''); // 'lkjhgfdsa'
1 | |
1 | |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 25岁的心里话
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现