//定义一个数组
var fruits = ['香蕉', '芒果','橘子','荔枝','樱桃'];
//添加元素到数组的末尾,改变原数组
var newLength = fruits.push('香橙');
//console.log(newLength) //6
//console.log(fruits) //["香蕉", "芒果", "橘子", "荔枝", "樱桃", "香橙"]
//删除数组末尾的元素,改变原数组
var last = fruits.pop()
//console.log(last)//香橙
//console.log(fruits) //["香蕉", "芒果", "橘子", "荔枝", "樱桃"]
//删除数组最前面的元素,改变原数组
var first = fruits.shift();
//console.log(fruits) //["芒果", "橘子", "荔枝", "樱桃"]
//添加元素到数组的头部,改变原数组
var newLength = fruits.unshift('草莓')
//console.log(fruits) // ["草莓", "芒果", "橘子", "荔枝", "樱桃"]
//reverse() 方法将数组中元素的位置颠倒,并返回该数组。数组的第一个元素会变成最后一个,数组的最后一个元素变成第一个。
//改变原数组
console.log(fruits.reverse()) //["樱桃", "荔枝", "橘子", "芒果", "草莓"]
//找出某个元素在数组中的索引
var pos = fruits.indexOf('香蕉');
//console.log(pos) //-1 即不存在这个元素
//通过索引删除某个元素 第一个参数是下标 第二个参数是删除几个,改变原数组
var removedItem = fruits.splice(1, 1)
//console.log(fruits) //["草莓", "橘子", "荔枝", "樱桃"]
//Array.from() 方法从一个类似数组或可迭代对象创建一个新的,浅拷贝的数组实例。
//非数组解析成一个数组
console.log(Array.from('foo')); // ["f", "o", "o"]
//Array.isArray() 用于确定传递的值是否是一个 Array。
console.log(Array.isArray([1, 2, 3])); //true
//concat() 方法用于合并两个或多个数组。此方法不会更改现有数组,而是返回一个新数组。
const array1 = ['a', 'b', 'c'];
const array2 = ['d', 'e', 'f'];
const array3 = array1.concat(array2);
console.log(array3); //["a", "b", "c", "d", "e", "f"]
//join() 方法将一个数组(或一个类数组对象)的所有元素连接成一个字符串并返回这个字符串。
//如果是("")则元素间没有任何字符
const elements = ['火', '土', '水'];
console.log(elements.join()); //"火,土,水"
console.log(elements.join('')); //"火土水"
console.log(elements.join('-'));//"火-土-水"
//slice()方法返回一个由下标截断的数组
//如果只有一个下标,返回包括此下标之后的数组
//如果有两个,第一个下标取,之前的不取,第二个下标不取,之后的不取
//如果第二个下标超出index范围,则第一个数(包括第一个数)后面全部获取
const animals = ['1', '2', '3', '4', '5'];
console.log(animals.slice(2)); //["3", "4", "5"]
console.log(animals.slice(2, 4)); // ["3", "4"]
console.log(animals.slice(1, 5)); // ["2", "3", "4", "5"]
//toString() 返回一个字符串
const array4 = [1, 2, 'a', '1a'];
console.log(array4.toString()); //"1,2,a,1a"
//includes方法用来判断一个数组是否包含一个指定的值,如果是返回 true,否则false。
let site = ['runoob', 'google', 'taobao'];
site.includes('runoob'); //true
var fruits = ['香蕉', '芒果','橘子','荔枝','樱桃'];
//使用forEach循环 接收两个参数 数组的值和下标
fruits.forEach(function (item, index) {
// console.log(item, index);
// 香蕉 0
// 芒果 1
// 橘子 2
// 荔枝 3
// 樱桃 4
});
//every() 方法测试一个数组内的所有元素是否都能通过某个指定函数的测试。它返回一个布尔值。
const isBelowThreshold =function(currentValue){
return currentValue < 40
};
const array1 = [1, 30, 39, 29, 10, 13];
console.log(array1.every(isBelowThreshold)); //true
//some() 方法测试数组中是不是至少有1个元素通过了被提供的函数测试。
//它返回的是一个Boolean类型的值
//如果用一个空数组进行测试,在任何情况下它返回的都是false。
const array = [1, 2, 3, 4, 5];
const even = (element) => element % 2 === 0;
console.log(array.some(even)); //true
//filter() 方法创建一个新数组, 其包含通过所提供函数实现的测试的所有元素。
const words = ['啦啦啦啦啦啦啦', 'limit', 'elite', 'exuberant', 'destruction', 'present'];
const result = words.filter(word => word.length > 6);
console.log(result); //["啦啦啦啦啦啦啦", "exuberant", "destruction", "present"]
//map() 方法创建一个新数组,其结果是该数组中的每个元素都调用一个提供的函数后返回的结果。
var numbers = [2, 4, 6];
var doubles = numbers.map(function(num,index) {
console.log(index) //0,1,2
return num * 2;
});
console.log(doubles); //[4, 8, 12]