JS_数组01

一、数组的创建

// 数组的创建----两种方法
// 1.构造函数创建
var arr1 = new Array();
//var arr1 = new Array(5); //创建的时候指定长度,打印的时候会出现 <2 empty items> //
arr1[0] = 'zhangs';
arr1[1] = 'lisi';
arr1[2] = 'wangw';
console.log(arr1); //运行结果:[ 'zhangs', 'lisi', 'wangw' ]
//2.字面量创建[] 对象{}
var arr2 = ['zs', 'ls', 'ww'];
console.log(arr2);

二、数组的遍历

// 数组的遍历两种
//1. for 遍历     
var str = '数组arr4的遍历:';
for (var i = 0; i < arr4.length; i++) {
    str += arr4[i];
    str += " , ";
}
console.log(str);
// 2. for..in遍历
var str1 = "for...in循环:";
console.log(str1);
for (var k in arr4) {
    console.log(arr4[k]);
}

三、数组的深拷贝

// 数组的深浅拷贝
// 深拷贝,两种方法
// 1.push方法
var arr7 = [];
for (var k in arr5) {
    arr7.push(arr5[k]);
}
console.log('arr7数组为' + arr7);
// 2.concat方法
var arr8 = arr5.concat(); //数组拼接函数,返回新数组
// var arr8 = arr5.concat(7, 5, 6); //数组拼接函数
console.log('数组arr8为' + arr8);

四、类数组对象

可迭代(iterable)和类数组(array-like)

Iterable 如上所述,是实现了 Symbol.iterator 方法的对象。

Array-like 是有索引和 length 属性的对象,所以它们看起来很像数组。

// 可迭代或类数组对象转换为真数组
var obj = {
        '0': 'zs',
        '1': 'ls',
        '2': "ww",
        3: 'zl',
        'length': '4'
    } //【有索引和长度length才是类数组对象;】
console.log(obj);
console.log(Array.from(obj)); //转换第一种方法
// 运行结果:[ 'zs', 'ls', 'ww', 'zl' ]
var obj_arr = Array.from(obj);
obj_arr.push('zl');
console.log(obj_arr);
//字符串和数组默认可迭代

五、数组类型检测

// 如何检测是数组类型
//1、 instanceof操作符
var arr = [1, 2, 3]; //类数组/可迭代对象
var obj_arr = { '0': 1, length: 1 };
console.log(arr instanceof Array); //判断是否是数组    true
console.log(obj_arr instanceof Array);             //false
if (!(obj_arr instanceof Array)) {
    obj_arr = Array.from(obj_arr);
}
console.log(obj_arr instanceof Array);            //true
// 2.Array.isArray()判断
console.log(Array.isArray(arr));                  //true
console.log(Array.isArray(obj_arr));              //true
console.log(typeof arr);

六、序列化

var str1 = arr.toString();
console.log(str1); //zs,ls,ww
//可以split()反序列化,返回一个新数组
var new_arr = str1.split(',');
console.log(new_arr); //运行结果:[ 'zs', 'ls', 'ww' ]
//通过join()将数组通过某个字符拼接转化成字符串
var new_arr2 = arr.join('|');
console.log(new_arr2);//运行结果:zs|ls|ww

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值