Array对象、数组去重(JS源码)

数组对象:

1.创建数组对象的方式:

var  对象名 = new Array( );

var  对象名 = new Array( 大小 );

var  对象名 = new Array(值1,值2,值3,值4);

var  对象名 = [ 值1,值2,值3,值4 ];(建议使用)

例:

let arr = new Array(); //创建空数组
let arr1 = new Array(1, 2, 3, 4); //创建数组时赋值
let arr2 = [1, 2, 3, 4];
console.log(arr1[2]); //3
console.log(arr2[0]); //1

2.Array对象属性:

(1)length属性:

let arr1 = new Array(1, 2, 3, 4); //创建数组时赋值
for (let i = 0; i < arr1.length; i++) {//循环遍历
    console.log(arr1[i] + "\n");
}

(2)prototype属性(原型)

3.Array对象的方法:

concat( )                      连接数组

join( )                           将数组元素按指定分隔符连接起来,返回一个字符串

pop( )                           删除并返回数组的最后一个元素(出栈)

push( )                         给数组元素添加元素(入栈)

reverse( )                    颠倒数组中元素的顺序

shift( )                         将第一个元素移出数组

unshift( )                     在数组头部插入一个元素

let arr = new Array(); //创建空数组
let arr1 = new Array(1, 2, 3, 4); //创建数组时赋值
let arr2 = [1, 2, 3, 4];
console.log(arr1.concat(arr2)); //将数组连接起来--[ 1, 2, 3, 4, 1, 2, 3, 4 ]
let products = "衣服@首饰@水果";
let names = ["tom", "lily", "lucy"];
let namestr = names.join("-"); //将数组元素按照"-"分隔连接起来,并返回一个字符串
console.log(namestr); //tom-lily-lucy
let ps = products.split("@"); //将字符串转换成数组
console.log(ps); //[ '衣服', '首饰', '水果' ]
names.push("hanmeimei"); //在后面加新内容,输出为总个数
console.log(names); //[ 'tom', 'lily', 'lucy', 'hanmeimei' ]
names.pop(); //删除数组中最后一个元素
console.log(names); //[ 'tom', 'lily', 'lucy' ]
names.shift(); //删除第一个元素
console.log(names); //[ 'lily', 'lucy' ]
names.unshift("xingxing"); //在数组第一个位置加内容
console.log(names); //[ 'xingxing', 'lily', 'lucy' ]
console.log(ps.reverse()); //颠倒顺序---[ '水果', '首饰', '衣服' ]

 

slice( ):返回数组的一部分(返回的数组包含从start开始到end之间所有元素)

sort( ):对数组元素进行排序,(排序原理是将元素转为字符串,并按照字符串出现先后顺序排序)

spilce( ):插入,删除或替换数组的元素(spilce(开始删除位置,[删除数目、插入元素1、插入元素                     2、插入元素3、.......]))

toString( ):将数组转换成一个字符串

let names = ["tom", "lily", "lucy"];
let newnames = names.splice(0, 2); //删除从第一个位置开始删除,删除的两个数字
console.log(newnames); //返回被删除的值----[ 'tom', 'lily' ]
let ss = names.splice(0, 0, "hanhan"); //从第二个位置开始插入,插入一个字符串
console.log(names); //[ 'hanhan', 'lucy' ]
console.log(names.toString()); //hanhan,lucy

二维数组:

二维数组,一维数组的元素是另一个数组。

let ps = [
    [1, 2, 3],
    [4, 5, 6],
    [7, 8, 9]
];
for (let i = 1; i < ps.length; i++) {
    for (let j = 1; j < ps.length; j++) {
        console.log(ps[i][j]); //5 6 8 9 
    }
}

数组去重:

1.只去掉一个数字:

//只能去掉一个数字
let nums = [1, 2, 3, 4, 5, 6, 1];
let m;
for (let i = 0; i < nums.length; i++) {
    for (let j = i + 1; j < nums.length; j++) {
        if (nums[i] == nums[j]) {
            m = i; //将重复的数字的下标赋值给m
            break;
        }
    }
}
nums.splice(m, 1); //删除第m位往后排的一个数字
console.log(nums);

示例图:

2.去掉多个数字:

let numss = [1, 2, 3, 4, 5, 6, 5, 4, 3, 2, 1];
let n = [];
for (let i = 0; i < numss.length; i++) {
    if (n.indexOf(numss[i]) == -1) { //当数组n里面和nums数组里面没有重复的数组时
        n.push(numss[i]); //加入到新的数组n里面
    }
}
console.log(n);

示例图:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值