JS-数组操作

ES5新增部分

var arr = [10, 20, 40, 50];

arr.forEach(function(item, index, arr) {

console.log(index, item);

console.log(arr);

        });

//去重——集合、流等采用数组,IT领域也是不断完善理论罢了,其实质就是操作数组,增加方法——close()\append()

//所以:各个领域的本质相通性,不要被  “所谓的专业术语”高大上,唬住了!————Dorian君还是看得很透彻!

var arr1 = [10, 20, 40, 10, 20, 40, 50];

var res = [];

arr1.forEach(function(item, index, arr1) {

if (res.indexOf(item) === -1) {

res.push(item);

            }

        });

console.log(res);

//filter()——对原数组进行过滤,每次函数返回值为true对应组成

var res1 = arr1.filter(function(item, index, arr1) {

console.log(item);

return index % 2 === 0;

        });

console.log(res1, arr1);

//map()

var res2 = arr1.map(function(item, index, arr1) {

return item - 5;

        });

console.log(res2, arr1);


var sum = arr.reduce(function(prev, next, currIndex, arr1) {

// console.log(arr1);

console.log(prev + "--" + next + "--" + currIndex);

return next + prev;

        });

console.log(sum);

console.log("===================");

//指定第二个参数,可以从0位置开始计算

var sum = arr.reduce(function(prev, next, currIndex, arr1) {

// console.log(arr1);

console.log(prev + "--" + next + "--" + currIndex);

return next + prev;

        }, 0);

console.log(sum);



三大排序

【1】bubblSort

function bubbleSort(arr) {

for (var i = 0; i < arr.length - 1; i++) {

for (var j = 0; j < arr.length - i - 1; j++) {

if (arr[j] > arr[j + 1]) {

temp = arr[j];

arr[j] = arr[j + 1];

arr[j + 1] = temp;

                    }

                }

            }

console.log(arr);

        }

【2】选择排序

for (var i = 0; i < arr.length - 1; i++) {

var index = i;

for (var j = i + 1; j < arr.length; j++) {

if (arr[j] < arr[index]) {

index = j;

                }

            }

var temp = arr[i];

arr[i] = arr[index];

arr[index] = temp;

        }

【3】

数组自带API

//删除指定位置元素

console.log(arr.splice(1, 2));

console.log(arr);

//增加:将第二个参数设置为0,第三个参数为添加的值

console.log(arr.splice(1, 0, 100));

console.log(arr);

//替换:第二个参数为替换的个数,后面添加特换的个数

console.log(arr.splice(1, 2, 102, 101));

console.log(arr);


//插入操作

var arr = [1, 2, 3];

// 返回值:改变后的数组长度

console.log(arr.push(4, 5));

console.log(arr);

arr[3] = 3;

console.log(arr);

//unshift()

console.log(arr.unshift(-1, 0));  //返回数据长度

console.log(arr);

//删除操作

console.log(arr.pop());

console.log(arr);

console.log(arr.shift());

console.log(arr);

// slice(start,end)——截取数组

var res = arr.slice(2, 4);

slice(start) //从开始,默认到结束

//join()——拼接字符串,默认以“,”连接

var res1 = arr.join();

console.log(typeof(res1), res1);

var res2 = arr.join('&');

console.log(typeof(res2), res2);

//concat()——数组拼接

var array = [1, 2, 3];

var array1 = [4, 5, 6];

var array2 = [1, 2, 3, 8];

var result = array2.concat(array, 8008, array1, 1000, 1001);

console.log(array, array1, array2, result);

//reverse()——数组倒序,改变原数组的逆序

console.log(array.reverse(), array);


//splice 删除替换元素

// 第一个参数代表从第几位开始

// 第二个参数代表删除几个元素

// 第三个参数代表插入元素

var removed = myFish.splice(2, 0, "drum");
var removed = myFish.splice(2, 0, 'drum', 'guitar');
posted @ 2020-06-05 07:26  小海_macro  阅读(196)  评论(0编辑  收藏  举报