js中数组的操作1

    // 1. 数组长度

    var arr = ['aaa', 'bbb', 'ccc', 'ddd'];

    var l = arr.length;

    console.log("arr 的长度: " + l);

    // 2.数组索引

    var arr = ['aaa', 'bb', 'cc', 'dd'];

    var x = arr[1];

    console.log('数组下标为1, 也就是数组第二个元素是:' + x)

    arr[1] = '修改过的值'

    var x = arr[1];

    console.log('数组下标为1, 也就是数组第二个元素是(修改后的):' + x)

    // 3. indexOf --> : 返回指定元素的位置, 如果没有则返回-1

    var arr = ['aaa', 'bbb', 'ccc', 'ddd']

    var index = arr.indexOf('aaa');

    var index2 = arr.indexOf('111');

    console.log("aaa 在arr中的位置 " + index);

    console.log("111 在arr中的位置 " + index2);

      // 当数组的元素为对象时

    var obj1 = { id: 1, name: '西安' };

    var obj2 = { id: 2, name: '北京' };

    var obj3 = { id: 3, name: '成都' };

    var arr = [obj1, obj2, obj3];

    var obj = { id: 1, name: '西安' }

    var index = arr.indexOf(obj);

    var index2 = arr.indexOf(obj1);

    console.log("查看对象是否也能通过indexOf返回下表" + index);

    console.log("查看对象是否也能通过indexOf返回下表" + index2);

    // 事实表明, 只有当字面量相等时的对象实在对象数组中查找不到的, 除非时引用也相等时才能找到其下标

    // 4.slice -->  接收1个或两个参数

    //              当参数只有1个时,返回从参数指定位置到数组结尾的所有项

    //              当参数有两个时,则将第一个参数作为起始,第二个参数作为终止下标返回数组项;这里不包含第二个参数所在的下表项,也就是 [arg1, arg2)

    //              方法返回一个新数组, 原数组并不会改变

    var arr = ['aaa', 'bbb', 'ccc', 'ddd', 'eee'];

    var arr2 = arr.slice(1);

    console.log('arr.slice(1) : ' + arr2)

    var arr3 = arr.slice(0, 3);

    console.log('arr.slice(0, 1) : ' + arr3)

    var arr4 = arr.slice(1, -2);

    console.log('arr.slice(-1) : ' + arr4)

    // 当参数为负数时,计算参数应该时 此负数加上数组长度去计算

    // 5. push -->  在数组后面添加若干元素,返回添加后数组的长度

    var arr = ['aaa', 'bbb', 'ccc', 'ddd'];

    var x = arr.push('ee', 'dd');

    console.log("push 后的数组 以及长度: " + arr + " :" + x);

    //  实时证明这个方法会改变原数组

    // 6.pop --> 删除数组末尾元素, 返回被删除的元素, 若数组为空则返回undefined

    var arr = ['aaa', 'bbb', 'ccc', 'ddd', 'eee'];

    var x = arr.pop();

    console.log('pop 后的数组 以及pop出来的数组项:' + arr + " _  " + x);

    // 此方法也会改变原数组

    var args = 'aaa'

    var x = arr.pop(0);

    console.log('pop 后的数组 以及pop出来的数组项:' + arr + " _  " + x);

    // 并且传入参数不起作用

    // 7. unshift --> 删除数组头部第一项, 返回删除的数组项

    var arr = ['aaa', 'bbb', 'ccc', 'ddd'];

    var x = arr.shift('111', '222');

    console.log('shift 后的数组 以及shift出来的值:' + arr + " _  " + x);

    // 8. unshift --> 在数组头部添加若干元素,返回添加后数组的长度

    var arr = ['aaa', 'bbb', 'ccc', 'ddd'];

    var x = arr.unshift('1111', '222');

    console.log('shift 后的数组 以及shift出来的长度:' + arr + " _  " + x);

    // 9. sort --> 对数组进行排序, 返回排序后的数组, 默认把数组每一项转化成字符后再进行排序。会改变原数组

    var arr = ['a', 'c' , 'd', '0', '1']

    var arr1 = arr.sort();

    console.log("排序后的arr1 和 原来的arr " + arr1 + '和' + arr);

        //    可以通过一个自定义的方法来排序

        //    此函数接受俩个参数, 如果要第一个参数再第二个参数前面则返回负数,如果要第一个参数再第二个参数后面则返回正数,相等则返回0

    function compare (arg1, arg2) {

      return arg1 - arg2

    }

    var arr = [3, 2, 8, 9, 1]

    console.log('排序后的数组 ' + arr.sort(compare));

    // 10. reverse --> 对数组中的数据进行反转,返回反转后的数组, 改变原数组

    var arr = ['aac', 'cbb', 'ccc', 'ddd'];

    var arr1 = arr.reverse();

    console.log("反转后的数组:" + arr1 + ',  以前那个数组:' + arr);

    // 11. splice --> 从指定位置删除若干元素, 然后再从该位置添加若干元素, 结果返回被删除的元素

    //                第一个参数表示起始删除的位置, 第二个参数表明要删除元素的个数, 第三个参数则是要添加的元素

    var arr = ['a', 'v', 'b', 'c', 'd'];

    // var arr1 = arr.splice(1, 3);

    // console.log('删除后的数组 :' + arr);

    // console.log('删除返回的值 :' + arr1);

    var arr1 = arr.splice(1, 3, ['a','b','c']);

    console.log('删除后的数组 :' + arr);

    console.log('删除返回的值 :' + arr1);

你可能感兴趣的:(js中数组的操作1)