MDN数组常用方法

let fruits = ['Apple', 'Banana']

// 索引访问
let first = fruits[0]
let last = fruits[fruits.length - 1]
console.log(first, last)

// 遍历
fruits.forEach((item, index) => {
    console.log(`内容是${item}, 索引是${index}`)
})

// 添加和删除
fruits.push('pushOne', 'pushTwo')
fruits.pop()
console.log(fruits);

fruits.unshift('unshiftOne', 'unShiftTwo')
fruits.shift()
console.log(fruits);

// 找出在数组中的索引
let index = fruits.indexOf('Banana')
console.log(index);

// 通过索引删除元素
let popOne = fruits.splice(3, 1)
console.log(fruits, popOne);

// 复制一个数组
let copyArr = fruits.slice()
console.log(copyArr, fruits);

// Array.from() 将类数组转化为数组
console.log(Array.from('hello world'));

let s = new Set(['foo', 'window']);
console.log(Array.from(s));

let m = new Map([[1, 2], [2, 4], [4, 8]]);
console.log(Array.from(m));

function combine(){
    let arr = [].concat.apply([], arguments);  // 数组去重合并
    return Array.from(new Set(arr));
}
var arrOne = [1, 2, 2], arrTwo = [2,3,3];
console.log(combine(arrOne, arrTwo));

// concat 合并数组
var num1 = [1, 2, 3],
    num2 = [4, 5, 6],
    num3 = [7, 8, 9];
var nums = num1.concat(num2, num3);
console.log(nums);

// copyWithin 复制数组的一部分值到另一个位置
var arrNum = [1, 2, 3, 4, 5, 6]
console.log(arrNum.copyWithin(5, 0));

// ervery 用于检测数组中每一个值满不满足条件,有不满足的就返回false,全部满足返回true
function isBigEnough(element, index, array) {
    return (element >= 10);
}
let passed1 = [12, 5, 8, 130, 44].every(isBigEnough);
let passed2 = [12, 54, 18, 130, 44].every(isBigEnough);
console.log(passed1, passed2);

// fill 从数组的某一位置开始,用某一字符填充数组
arrNum.fill('fill', 3)
console.log(arrNum);

// filter 通过函数提供的方法筛选数组中的元素
console.log([12, 5, 8, 130, 44].filter(isBigEnough));

// find 通过函数提供的方法,返回第一个满足条件的值
console.log([2, 5, 8, 130, 44].find(isBigEnough));

// findIndex 通过函数提供的方法,返回第一个满足条件的索引
console.log([2, 5, 8, 130, 44].findIndex(isBigEnough));

// foreach 循环迭代数组,返回每项的值,和索引
[2, 5, 8, 130, 44].forEach((item, index) => {
    console.log(`内容是${item}, 索引是${index}`)
});

// includes 判断一个函数是否包含一个值,返回true或flase
console.log([2, 5, 8, 130, 44].includes(130));

// indexOf 返回数组中元素的第一个索引,没有返回-1
console.log([2, 5, 8, 130, 44].indexOf(22));
// lastIndexOf 返回数组中元素的第一个索引,没有返回-1
console.log([2, 5, 8, 130, 44].lastIndexOf(22));

// join 将数组中的元素通过符号连接成字符串
console.log([1, 2, 3, 4, 5, 6].join('-'));

// keys || values 返回一个新的Array迭代器,它包含数组中每个索引的键。
let iterator = ['a', 'b', 'c'].keys();
let iterator = ['a', 'b', 'c'].values();
console.log(iterator.next());
console.log(iterator.next());
console.log(iterator.next());
console.log(iterator.next());

// map 通过一个函数返回一个新数组
console.log([1, 2, 3, 4, 5].map(x => x * 5));

// reduce 对累加器和数组中的每个元素(从左到右)应用一个函数,将其减少为单个值。
let total = [1, 2, 3, 4, 5].reduce((x, y) => x + y);
console.log(total);
// 计算数组中元素出现的次数
var names = ['Alice', 'Bob', 'Tiff', 'Bruce', 'Alice'];

var countedNames = names.reduce((allNames, name) => {
    name in allNames ? allNames[name]++ : allNames[name] = 1;
    return allNames;
}, {});
console.log(countedNames);

// reverse 反转数组
console.log(names.reverse());

// toLocalString    将数组中元素转换成相应的形式
var number = 1337;
var date = new Date();
var myArr = [number, date, "foo"];
var str = myArr.toLocaleString();
console.log(str);
var prices = ['¥7', 500, 8123, 12];
console.log(prices.toLocaleString('ja-JP', {style: 'currency', currency: 'JPY'}));

// 重复字符串的方法
new Array(5).join('a');   // 4个a

转载于:https://my.oschina.net/chinahufei/blog/1620726

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值