代码改变世界

数组API

2019-11-04 23:37  张海峰999  阅读(113)  评论(0编辑  收藏  举报

1.arr.join("自定义字符串")

将数组中的每个元素转化为字符串,可以自定义连接

无缝连接 arr.join("")里面不用东西,

2.拼接

arr.concat(value1, value2 , arr)将其他元素或者另外一个数组拼接当前数组的结尾

var arr1 = [1,2,3]

var arr2 = [4,5,6]

arr1.concat(arr2)   (1,2,3,4,5,6)

concat无权修改数组,只能返回新数组,必须使用变量接受拼接返回的值

concat会打散参数中的子数组为单个元素,单个拼接

3.选取

arr.slice(starti,endi)选取stati位置开始到endi位置的所有元素,组成临时子数组

var arr = [1,2,3,4,5,6,7,8,9]

arr.slicde(3,6)    (4,5,6)

下标含头不含尾 , slice无权修改数组 , 支持负参数   length - n

省略第二个参数表示从指定位置开始一直截取到结尾

4.数组的修改(删除, 插入, 替换)

a.删除  

arr.splice(starti,n)  删除arr中starti开始的n个元素

var arr = [1,2,3,4,5,6]

arr.splice(3,5)   (4,5,6)

修改了原数组  支持负参数

 

b.插入 

arr.splice(starti, 0, value1, value2,arr)将value1 , value2 等插入到arr中starti的位置

0 表示一个都不删除, 原位置的值向后移,

var arr = [1,2,3,4,5,6]

var arr2 = [7,8,9]

arr2.splice(1,0, 99,100)   (1,99,100,2,3,4,5,6)

 c.替换

arr.splice(starti,n,,value1, value2,) 先删除arr中starti位置开始的n个元素

再在starti位置插入value1,value2,删除的元素个数和插入的新元素不必一致

var arr = [1,2,3,4,5,6,7,8,9]

var arr = [1,2,3,4,5,6,7,8,9];arr.splice(0,3,0,0,0);console.log(arr)
[0, 0, 0, 4, 5, 6, 7, 8, 9]

 

 

冒泡排序

function bubblesort(arr) {
for (var i = 1; i < arr.length; i++) {
for (var j = 0; j < arr.length - i; j++) {
if (arr[j] > arr[j + 1]) {
// arr[i] ^= arr[i + 1];
// arr[i + 1] ^= arr[i];
// arr[i] ^= arr[i + 1];
arr[j] = [arr[j + 1], arr[j + 1] = arr[j]][0];
}
}
}
}
var arr = [10, 6, 9, 3, 5, 4, 7, 2, 8];
bubblesort(arr);
console.log(arr);