JavaScript数组

数组:
数组的所有方法全来源于Array.prototype
数组的定义:
new Array(length/content)
字面量

            var arr = [1, , 2, 3, 4, ''];
            var arr = new Array(1, 2, 3, 4, 5);

创建长度为10的空数组只能这么创建
var arr = new Array(10);
在这里插入图片描述
var arr = new Array(10.2);
在这里插入图片描述
var arr = [10.2];

数组常用的方法:
改变原数组
push,pop,shift,unshift,sort,reverse
splice

push是在数组的最后面添加元素
var arr = [];
arr.push(1, 2, 3, 4, 5, 6, 7, 8);
在这里插入图片描述
代码实现push方法

            var arr = [1, 2, 3];
            Array.prototype.push = function() {
                for (var i = 0; i < arguments.length; i++) {
                    this[this.length] = arguments[i];
                }
                return this.length;
            }


pop:剪切掉数组的最后一位,并且不能传参

            arr.pop()

unshift:将元素插入到数组的开始部分,可以添加多位元素

            arr.unshift(1,2,3,4);

shift:剪切掉数组的后面 i 位

            arr.shift(i)

reverse:将原数组翻转

            arr.reverse();

在这里插入图片描述

splice:应用非常多,
arr.splice(从第几位开始, 截取多少的长度, 在切口处添加新的数据);

            var arr = [1, 1, 2, 2, 3, 3];
            arr.splice(1,2);
            arr.splice(1,2,0,0,0,0);

在这里插入图片描述
栗子:
在第三位上添加一个 4

            var arr = [1,2,3,5];
            arr.splice(3,0,4);

在这里插入图片描述
剪切数组的 -i 位,就是剪切数组的倒数第 i 位

splice = function(pos) {
        pos += pos > 0 ? 0 : this.length;
    }

sort:将数组中的元素由大到小排序

            var arr = [1, 3, 4, 0, -1, 5];
            arr.sort()

想要将数组降序排列:

arr.reverse()

在这里插入图片描述
var arr = [1, 3, 4, 0, -1, 5];

1.必须写俩形参
2.看返回值:
(1)当返回值为负数时,那么前面的数放在前面
(2)为正数,那么后面的数在前
(3)为 0 ,不动

                var arr = [1, 3, 5, 4, 10];
                arr.sort(function(a, b) {
                    return a - b; //升序
                     return b-a;//降序
        
                    // if (a > b) {
                    //     return 1;
                    // } else {
                    //     return -1;
                    // }
                })

题:给一个有序的数组,乱序

        var arr = [1, 2, 3, 4, 5, 6, 7];
        arr.sort(function() {
            return Math.random() - 0.5;
        });

题:给对象里面的元素 age 排序

            var cheng = {
            name: 'cheng',
            age: 18,
            sex: 'male',
            face: 'handsome',
        }
        var deng = {
            name: 'deng',
            age: 40,
            sex: undefined,
            face: 'amazing',
        }
        var zhang = {
            name: 'zhang',
            age: 20,
            sex: 'male',
        }
        var arr = [cheng, deng, zhang];
        arr.sort(function(a, b) {
            return a.age - b.age;
        })

题:按字符串长度排序

        var arr = ['ac', 'bcd', 'cccc', 'dddd', 'asdfkhiuqwe', 'asdoifqwoeiur', 'asdf'];
        arr.sort(function(a, b) {
            return a.length - b.length;
        }); 

题:按字节长度排序

        var arr = ['ac等', 'bcd钱多是', 'cccc但有', 'ddddshO数', 'asdfkhiuqwe会议厅', 'asdoif天天先qwoeiur', 'asdf'];
        arr.sort(function(a, b) {
                return retBytes(a) - retBytes(b);
            });

            function retBytes(str) {
                var num = str.length;
                for (var i = 0; i < str.length; i++) {
                    if (str.charCodeAt(i) > 255) {
                        num++;
                    }
                }
                return num;
            }

在这里插入图片描述
不改变原数组

concat,join ————> splice,toString,slice

concat:将数组拼接在另一个数组后面,拼完之后的数组是一个全新的数组,原数组并未发生改变

            var arr = [1, 2, 3, 4];
            var arr1 = [5, 6, 7, 8];
            arr.concat(arr1);

在这里插入图片描述
slice(从该位开始截取,截取到该位)
slice(1):从第一位开始截取一直截取到最后
slice(-4):从倒数第四位开始截取到最后
slice():整个截取

	var arr = [1, 2, 3, 4];
    // var arr1 = [5, 6, 7, 8];
    var newArr = arr.slice(1, 3);

在这里插入图片描述
join:join里面可以传参数,参数必须是字符串形式的,它会将数组里面的元素连接起来,返回一个字符串

arr.join(’-’)
arr.join(’&’)

在这里插入图片描述
split:将字符串拆解成数组,按什么拆就把什么拆了
栗子:

var str = '1-2-3-4-5-6-7';
str.split('-');

在这里插入图片描述
题:将多个字符串拼接到一起

第一种:

var str = 'alibaba';
    var str1 = 'baidu';
    var str2 = 'tencent';
    var str3 = 'toutiao';
    var str4 = 'wangyi';
    var str5 = 'xiaowang';
    var str6 = 'nv';
    var strFinal = '';
    //散列
    var arr = [str, str1, str2, str3, str4, str5, str6];
    for (var i = 0; i < arr.length; i++) {
        strFinal += arr[i];
    }

第二种:

	var str = 'alibaba';
    var str1 = 'baidu';
    var str2 = 'tencent';
    var str3 = 'toutiao';
    var str4 = 'wangyi';
    var str5 = 'xiaowang';
    var str6 = 'nv';
    var strFinal = '';
    var arr = [str, str1, str2, str3, str4, str5, str6];
    console.log(arr.join(''));
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值