JS-数组的常用内置功能

join() 数组转字符串   push() 数组末尾添加元素 返回新的长度

pop() 删除数组最后一个元素 返回删除的元素   shift() 删除数组第一个元素 返回删除的元素

unshift() 数组开头添加元素 返回新的长度   sort() 对数组元素按编码排序

reverse() 颠倒元素顺序   concat() 连接数组   slice(start , end) 截取 不包含end

splice(index , howmany , item1,.....,itemX) 添加/删除项目 返回含有被删除的元素的数组

indexOf(item,start) 返回元素在数组中首次出现的位置 

lastIndexOf(item,start) 从数组的末尾开始向前查找   forEach() 对数组进行遍历循环

map() 映射   filter() 过滤   every() 数组中每一项都是否满足条件   some() 是否存在满足条件的项

reduce() 从数组的第一项开始遍历到最后   Array.from() 类数组转化为数组    

Array.of() 一组值转变为数组   find() 返回符合条件的元素 找到后立即停止

findIndex() 返回符合条件元素的下标 找到后立即停止   fill() 用固定值填充数组

includes() 判断数组是否包含该元素

// 1. 
var arr = [10, 2, 3, 4, 44];
var arr2 = ['hello', 'h5'];
var arr3 = ['666'];
var arr4 = arr.concat(arr2, arr3, 100, {name: 'karen'}); // 连接多个数组
console.log(arr, arr2, arr3, arr4);


// 2.
var arr = [10, 2, 3, 4, 44, [90, 10], {name: 'karen'}];
var re = arr.join('*'); // 不传参数默认是 ,  ;传参: 把数组中每一个元素toString() 然后拼接
console.log(re);


// 3.
var arr = [10, 230, 54];
var re = arr.pop(); // 删除最后一位 并返回最后一位
arr.pop();
arr.pop();
var re2 = arr.pop();
console.log(re2, arr); // undefined  []


// 4.
var arr = [10, 230, 54];
var re = arr.push(10, 20); // 在数组最后按顺序添加元素 返回新的长度
console.log(re, arr); // 5  [10, 230, 54, 10, 20]


// 5.
var arr = [10,230,54];
var re = arr.shift(); // 删除数组中第一个元素并返回第一个元素
console.log(re, arr); // 10  [230, 54]


// 6.
var arr = [10,230,54];
var re = arr.unshift(100, 200); // 在数组最前面添加元素 返回新的长度
console.log(re, arr); // 5  [100, 200, 10, 230, 54]


// 7.
var arr = [10, 20, 30, 40, 50, 60];
var re = arr.splice(2, 1, 'hello', 'h5'); // 从第n个位置起删除m个元素 并在它的位置插入元素 返回包含删除元素的数组
console.log(re, arr); // [30]  [10, 20, 'hello', 'h5', 40, 50, 60]


// 8.
var arr = [[10, 20], 90, 'hello', {name:'karen'}];
var re = arr.reverse(); // 颠倒顺序(原数组也颠倒)
console.log(re, arr, re == arr);


// 9.
var arr = [10, 54, 30, 40, 20, 9];
var re1 = arr.sort(); // 默认按表码排序(比较首字母)
console.log(re1, arr); // [10, 20, 30, 40, 54, 9]  [10, 20, 30, 40, 54, 9]

var re2 = arr.sort(function (a, b) {
    return a - b
});
console.log(re2); // [9, 10, 20, 30, 40, 54]


// 10.
var arr = [10, 203, 44];
arr.forEach(function (el) {
    console.log(el); // 10 203 44
});

arr.forEach(function (el, index, arr) {
    console.log(el, index, arr); // 10 0 [10, 203, 34], 203 1 [10, 203, 34], 44 2 [10, 203, 34] 
});


// 11.
var arr = [10,20,9];
var re = arr.map(function(el) {
    console.log(el); // 10 20 9
    return 100;
})
console.log(re); // [100,100,100]


// 12.
var arr = [{
    name: 'karen',
    birth: '2001-02-03'
}, {
    name: 'jack',
    birth: '2002-02-03'
}];
var arr2 = arr.map(function (el) {
    el.age = new Date().getFullYear() - new Date(el.birth).getFullYear();
    return el;
});
console.log(arr2); // [{name: 'karen', birth: '2001-02-03', age: 21},{name: 'jack', birth: '2002-02-03', age: 20}]


// 13.
var arr = [10, 203, 34, 50];
var re = arr.filter(function (el, index, arr) {
    if (el > 20) {
        return true;
    } else {
        return false;
    }
});
console.log(re); // [203, 34, 50]


// 14.
var arr = [10, 200, 3000, 400];
var re = arr.some(function (el) {
    return el > 1000;
}); // 只有有一个符合就为true
console.log(re); // true


// 15.
var arr = [10, 20, 30, 5];
var re = arr.reduce(function (n1, n2) {
    console.log(n1, n2);
    return n1 + n2;
});
console.log(re); // 65


// 16.
var arr = [{
        title: '笔',
        price: 2,
        count: 2
    },
    {
        title: '本子',
        price: 5,
        count: 2
    },
    {
        title: '书包',
        price: 200,
        count: 1
    },
    {
        title: '桌子',
        price: 100,
        count: 1
     }
];
var re = arr.reduce(function (n1, n2) {
    return n1 + n2.price * n2.count
}, 0);
console.log(re); // 314

所有数组的方法 如果返回了一个新数组 新数组中的元素如果是以前数组中的引用数据 那么是同一个引用

var arr = [{
    name: 'karen'
}];
var arr2 = [1, 2, 2, 3, 4];
var re = arr.concat(arr2, 90, 30, 20);
console.log(re);
re[0].name = 'jack';
console.log(arr);

结果  :

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值