数组

创建数组的四种方式:

var arr1 = new Array('a', 'b', 'c');    //这是一个预定义的数组,在创建时初始化
var arr2 = ['a', 'b', 'c' ];       //同样是在创建时初始化,但是这种创建更为简洁直观
var arr3 = new Array( );   var arr4 = [ ];     //这两种是创建空的数组

请注意,如果通过索引赋值时,索引超过了范围,同样会引起Array大小的变化:

var arr = [1, 2, 3];
arr[5] = 'x';
arr; // arr变为[1, 2, 3, undefined, undefined, 'x']

大多数其他编程语言不允许直接改变数组的大小,越界访问索引会报错。然而,JavaScript的Array却不会有任何错误。在编写代码时,不建议直接修改Array的大小,访问索引时要确保索引不会越界。

 

1.数组普通的定义和遍历

var arr = [1, 'd', 3, 'a', 2, 4, 3];
         arr.forEach(function(value,index,array) {
             console.log(value+","+index+","+array[index]);
         });

        //普通遍历
        for(var i =0,len=arr.length;i<len;i++){
            console.log(i+':'+arr[i]);
        }

       //遍历出来的是value(for...of)
        for (var item of arr) {
            console.log(item);
        }

       //遍历出来的是索引(for ...in)
       for (const key in arr) {
            if (arr.hasOwnProperty(key)) {
                const element = arr[key];
                console.log(key + ':' + element);

            }
        }

2.数组里面放对象

特别注意要用:对象[key]取值

        //数组中放对象:
        var arrTmp = [{ name: 'zhangsan', age: 18, gender: 'male' }];
        for (var i in arrTmp) {
            for (var key in arrTmp[i]) {
                console.log(key + ":" + arrTmp[i][key])

            }

        }

3 给数组添加属性

var properties = ['hello', 'hi'];
        properties.name = 'zhangsan';//给数组加入一个name属性   --> Array.prototype.name = 'zhangsan';
        for (const key in properties) {
            if (properties.hasOwnProperty(key)) {
                const element = properties[key];
                console.log(key + ':' + element);
            }
        }

    // for...of 不会循环出数组的属性值
        var a = ['A', 'B', 'C'];
        a.name = 'Hello';
        for (var x of a) {
            console.log(x); // 'A', 'B', 'C',不会有'Hello'
        }
        // for...in 会循环出数组的属性
        for (var x in a) {
            console.log(x); // '0', '1', '2','name'
        }    

for ... in循环将把name包括在内,但Array的length属性却不包括在内。

for ... of循环则完全修复了这些问题,它只循环集合本身的元素

 这就是为什么要引入新的for ... of循环。

 

 

https://www.cnblogs.com/sxhlf/p/7941980.html

 数组的常见操作:

map():

js从数组中的对象取出特定字段并生成新的数组:

 

var arr = [
  {
    'id': '1',
    'name': 'img1',
    'imgUrl': './img1.jpg',
  },
  {
    'id': '2',
    'name: 'img2',
    'imgUrl': './img2.jpg',
  },
  {
    'id': '3',
    'name': 'img3',
    'imgUrl': './img3.jpg',
  }
];
arr.map(x => {return x.imgUrl}) // 生成数组

JS中从数组对象中提取需要的某些字段:

let res = arr.map(({name, id}) => ({ id, name }))
console.log(res)

 

posted @ 2020-08-30 11:27  Joyce502  阅读(134)  评论(0)    收藏  举报