Array的API学习

静态方法 构造函数方法
Array.isArray()
Array.of() //创建数组,弥补new Array()的缺点

非静态方法 实例方法
1.遍历相关方法
Array.prototype.forEach()
作用:对指定的数组进行遍历,每遍历一个元素调用一次回调函数
参数:回调函数、function(item,index,arr){},
item 遍历出来的元素
index 索引
arr 当前数组
返回值:undefined

Array.prototype.every()
作用:对指定的数组进行遍历,查看是否每个元素都满足指定条件
参数:回调函数、function(item,index,arr){},
item 遍历出来的元素
index 索引
arr 当前数组
返回值boolean,当有回调函数返回false,停止遍历,every返回false,当所有回调返回true,every返回true

Array.prototype.some()
作用:对指定的数组进行遍历,查看是否有元素都满足指定条件
参数:回调函数、function(item,index,arr){},
item 遍历出来的元素
index 索引
arr 当前数组
返回值:boolean,当有回调函数返回true,停止遍历some返回true,当所有回调都false,some返回false

Array.prototype.map() //映射
作用:对指定的数组进行遍历,将每个回调函数返回结果组成新数组进行返回
参数:回调函数、function(item,index,arr){},
item 遍历出来的元素
index 索引
arr 当前数组
返回值:数组

Array.prototype.filter()
作用:对指定的数组进行遍历,当回调函数返回true,将当前元素返回,filter将所有返回的元素组成新数组返回
参数:回调函数、function(item,index,arr){},
item 遍历出来的元素
index 索引
arr 当前数组
返回值:boolean

2.栈相关方法
Array.prototype.push()
作用:入栈,将参数追加到数组末尾
参数:*,表示要追加到数组末尾的值
返回值:数组长度
浅拷贝-原值发生了变化

Array.prototype.pop()
作用:出栈,将数组末尾元素伤处并且返回
参数:无
返回值:出栈的元素
浅拷贝-原值发生变化

3.队列方法
Array.prototype.shift()
作用:出队列,将数组开头元素删除并且返回
参数:无
返回值:出队列的元素
浅拷贝-原值发生变化

Array.prototype.unshift()
作用:插队列,在数组的开头插入元素
参数:*,表示要插入到数组开头的值
返回值:数组长度
浅拷贝-原值发生变化

4.排序方法
Array.prototype.reverse()
作用:将数组中的元素的顺序进行反转
参数:无
返回值:反转之后的数组
浅拷贝-原值发生变化

Array.prototype.sort()
作用:对数组中的元素进行排序,当无参,默认将数组中的元素转换为字符串进行排序,按照字符在ascii表中的顺序进行排序,当参数为比较器函数的话,按照比较器函数进行排序。
参数:无/比较器函数 function(a,b){},当比较器函数返回值大于0,说明a在b的后面,
小于0,a在b的前面
返回值:排序后的数组
浅拷贝-原值发生变化

5.查找方法
Array.prototype.indexOf()
作用:查询参数在指定数组中的位置 查询顺序为从前往后
参数:值
返回值:该值在数组中索引/-1

Array.prototype.lastIndexOf()
作用:查询参数在指定数组中的位置 查询顺序为从后往前
参数:值
返回值:该值在数组中索引/-1

6.截取方法
Array.prototype.slice(begin,end)
作用:从原数组中截取子元素
参数:begin 截取的开始位置
end 截取的结束位置,从begin开始到end结束,但不包含end
返回值:该值在数组中索引/-1
深拷贝-原值不变

Array.prototype.splice(begin,len,a,b,c…)
作用:在原数组删除、插入、替换
参数:begin表示开始
len删除的个数
a,b,c…表示插入的值
返回值:删除的值组成的数组

7.拼接方法
Array.prototype.concat(arr)
作用:将参数数组与原数组的深拷贝的部分进行合并
参数:多个数组
返回值:合并后的数组
深拷贝-原值不变
8.序列化
将数组转化为字符串
1)序列化为json
2)序列化为qs
3)Array.prototype.join()
作用:将数组中的元素转化为字符串,并且通过指定参数进行连接,没有参数用",“连接
参数:值
返回值:字符串
4)Array.prototype.toString()
作用:将数组中的元素转化为字符串,并且通过”,"拼接
参数:无
返回值:字符串

### Array API 功能与使用方法 #### 数组 API 的基本概念 数组 API 是一种标准化的接口设计,旨在统一不同库之间的数组操作方式。它提供了一套类似于 NumPy 的通用 API 集合,使得开发者可以在多个支持该规范的库间无缝切换[^1]。 #### Scikit-Learn 中的数组 API 支持 Scikit-learn 提供了实验性的数组 API 支持,这需要额外安装 `array-api-compat` 库作为依赖项。启用此功能后,可以利用更广泛的数组兼容性和扩展性来处理机器学习中的数据结构问题。 以下是基于 Python 和 Scikit-Learn 实现的一个简单示例: ```python import numpy as np from sklearn.experimental import enable_array_api # 启用实验特性 from sklearn.utils.array_api import from_numpy, get_namespace # 创建一个 NumPy 数组 data = np.random.rand(10, 5) # 转换到支持的数组命名空间 xp = get_namespace(data) converted_data = from_numpy(data, xp=xp) print(converted_data.shape) # 输出形状信息 ``` #### 浏览器环境下的二进制数据传输 除了服务器端的应用场景,在前端开发领域也可以借助 XMLHttpRequest Level 2 来发送和接收二进制数据(如 Blob 或 ArrayBuffer 对象)。这种能力对于文件上传、图像处理以及音视频流媒体应用尤为重要[^3]。 下面展示如何通过 JavaScript 发送一个自定义类型的数组缓冲区至远程服务端: ```javascript const xhr = new XMLHttpRequest(); xhr.open('POST', '/upload-endpoint'); // 初始化一个简单的 Typed Array 并填充随机字节 let uint8Array = new Uint8Array([72, 101, 108, 108, 111]); xhr.onload = function () { console.log(`Response received: ${this.responseText}`); }; xhr.onerror = function () { console.error("An error occurred during the transaction"); }; xhr.send(uint8Array.buffer); // 将底层 ArrayBuffer 数据提交给服务器 ``` #### PHP 环境下调用外部 RESTful APIs 虽然本主题主要围绕数组 API 展开讨论,但如果涉及跨平台交互,则不可避免提到 HTTP 请求技术栈。例如在 PHP 编程语言里有多种途径完成此类任务——无论是原生函数还是第三方框架均能胜任[^2]。 这里给出一段采用 cURL 扩展发起 GET 查询的例子代码片段: ```php <?php $url = 'https://api.example.com/resource'; $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); $response = curl_exec($ch); $httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE); if ($httpCode === 200 && !empty($response)) { echo json_decode($response)->message; } else { echo "Failed to retrieve data."; } curl_close($ch); ?> ``` --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值