数组(Arry)几个常用方法的详解

本文详细介绍了JavaScript中的数组方法,包括join()、concat()、push()、slice()、sort()、splice()、reverse()和pop()等常用方法的使用方式及注意事项。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

join() 方法用于把数组中的所有元素放入一个字符串。元素是通过指定的分隔符进行分隔的。

arrayObject.join(separator)
separator 可选。指定要使用的分隔符。如果省略该参数,则使用逗号作为分隔符。
返回一个字符串。该字符串是通过把 arrayObject 的每个元素转换为字符串,然后把这些字符串连接起来,在两个元素之间插入 separator 字符串而生成的。

concat() 方法用于连接两个或多个数组。

arrayObject.concat(arrayX,arrayX,......,arrayX)

arrayX 必需。该参数可以是具体的值,也可以是数组对象。可以是任意多个。
返回一个新的数组。该数组是通过把所有 arrayX 参数添加到 arrayObject 中生成的。如果要进行 concat() 操作的参数是数组,那么添加的是数组中的元素,而不是数组。

该方法不会改变现有的数组,而仅仅会返回被连接数组的一个副本。

push() 方法可向数组的末尾添加一个或多个元素,并返回新的长度。

arrayObject.push(newelement1,newelement2,....,newelementX)

返回值
把指定的值添加到数组后的新长度。
push() 方法可把它的参数顺序添加到 arrayObject 的尾部。它直接修改 arrayObject,而不是创建一个新的数组。push() 方法和 pop() 方法使用数组提供的先进后出栈的功能。
注释:该方法会改变数组的长度。
提示:要想数组的开头添加一个或多个元素,请使用 unshift() 方法。

slice() 方法可从已有的数组中返回选定的元素。

arrayObject.slice(start,end)

start 必需。规定从何处开始选取。如果是负数,那么它规定从数组尾部开始算起的位置。也就是说,-1 指最后一个元素,-2 指倒数第二个元素,以此类推。
end 可选。规定从何处结束选取。该参数是数组片断结束处的数组下标。如果没有指定该参数,那么切分的数组包含从 start 到数组结束的所有元素。如果这个参数是负数,那么它规定的是从数组尾部开始算起的元素。
返回值
返回一个新的数组,包含从 start 到 end (不包括该元素)的 arrayObject 中的元素。
请注意,该方法并不会修改数组,而是返回一个子数组。如果想删除数组中的一段元素,应该使用方法 Array.splice()。
注释:您可使用负值从数组的尾部选取元素。
注释:如果 end 未被规定,那么 slice() 方法会选取从 start 到数组结尾的所有元素。

sort() 方法用于对数组的元素进行排序。

arrayObject.sort(sortby)

sortby 可选。规定排序顺序。必须是函数。
返回值
对数组的引用。请注意,数组在原数组上进行排序,不生成副本。
如果调用该方法时没有使用参数,将按字母顺序对数组中的元素进行排序,说得更精确点,是按照字符编码的顺序进行排序。要实现这一点,首先应把数组的元素都转换成字符串(如有必要),以便进行比较。
如果想按照其他标准进行排序,就需要提供比较函数,该函数要比较两个值,然后返回一个用于说明这两个值的相对顺序的数字。比较函数应该具有两个参数 a 和 b,其返回值如下:
若 a 小于 b,在排序后的数组中 a 应该出现在 b 之前,则返回一个小于 0 的值。
若 a 等于 b,则返回 0。
若 a 大于 b,则返回一个大于 0 的值。

splice() 方法向/从数组中添加/删除项目,然后返回被删除的项目。

注释:该方法会改变原始数组。

arrayObject.splice(index,howmany,item1,.....,itemX)

index 必需。整数,规定添加/删除项目的位置,使用负数可从数组结尾处规定位置。
howmany 必需。要删除的项目数量。如果设置为 0,则不会删除项目。
item1, ..., itemX 可选。向数组添加的新项目。
返回值
Array 包含被删除项目的新数组,如果有的话。
splice() 方法可删除从 index 处开始的零个或多个元素,并且用参数列表中声明的一个或多个值来替换那些被删除的元素。
如果从 arrayObject 中删除了元素,则返回的是含有被删除的元素的数组。

reverse() 方法用于颠倒数组中元素的顺序。

arrayObject.reverse()

该方法会改变原来的数组,而不会创建新的数组。

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

arrayObject.pop()

返回值
arrayObject 的最后一个元素。
pop() 方法将删除 arrayObject 的最后一个元素,把数组长度减 1,并且返回它删除的元素的值。如果数组已经为空,则 pop() 不改变数组,并返回 undefined 值。

 

转载于:https://www.cnblogs.com/lhl66/p/7501973.html

感觉被你变复杂了,不如你把官方代码详细注释一下给我吧#include <stdio.h> #include <string.h> void transform(int *arry, int col_row) { //找到最大值 int max = arry[0], max_idx; for (int i = 0; i < col_row * col_row; i++) { if (max < arry[i]) max = arry[i];//找出最大数 max_idx = i; } //行列相乘得到总数量,除以2后加1则为中心点(暂时不考虑偶数的情况) int center_idx = (col_row * col_row) / 2; int tmp = arry[cen ter_idx]; arry[center_idx] = arry[max_idx]; arry[max_idx] = tmp; //找到四个最小值 int min_idx[4]; for (int i = 0; i < 4; i++) {//循环4次获取到最小值 int min_tmp = arry[col_row * col_row - 1]; for (int j = 0; j < col_row * col_row; j++) {//遍历所有数据,逐个比较获取最小值 int k = 0; for (; k < i; k++) {//但是要注意如果某个下标的数据已经是获取过的最小值,则不能进行判断(因为这个肯定是最小的) if (j == min_idx[k]) break; } if (k != i) { continue; }//k和i不同表示j这个坐标已经是找到的最小的几个数字之一,则找下一个判断 if (min_tmp > arry[j]) { // 相当于在剩下的数中找到最小的那个数字 min_tmp = arry[j]; min_idx[i] = j; //并且记录这个数字的位置 } } } int change_idx[4];//先计算四个角的下标,便于后边进行交换 change_idx[0] = 0;//第一个要置换的数据的下标,也就是左上角 change_idx[1] = col_row - 1;//第二个要置换的数据的下标,也就是右上角 change_idx[2] = col_row * (col_row - 1);//第一个要置换的数据的下标,也就是左下角 change_idx[3] = (col_row * col_row) - 1;//第一个要置换的数据的下标,也就是右下角 for (int i = 0; i < 4; i++) { int tmp = arry[change_idx[i]]; arry[change_idx[i]] = arry[min_idx[i]]; arry[min_idx[i]] = tmp; } return ; } int main() { int arry[5][5]; printf("Please enter a 5x5 matrix: \n"); for (int i = 0; i < 5; i++) { for (int j = 0; j < 5; j++) { scanf_s("%d", &arry[i][j]); } } transform(*arry, 5);//将二维数组当做一维数组传入处理,并且传入行列数 printf("\n"); for (int i = 0; i < 5; i++) { for (int j = 0; j < 5; j++) { printf("%d ", arry[i][j]); } printf("\n"); } system("pause"); return 0; }
最新发布
03-12
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值