Javascript学习之数组
数组
数组(array)是一个有序的数据集合,我们可以通过数组名称(name)和索引(index)进行访问。
创建数组
let arrAge = new Array(20,21,22,23,24,21,20); let arrAge2 = Array(20,21,22,23,24,21,20); let arrAge3 = [20,21,22,23,24,21,20];
填充数组
let arrDemo = []; arrDemo[0] = "java"; arrDemo[1] = "python"; arrDemo[2] = "javaScript"; console.log(arrDemo); // [ 'java', 'python', 'javaScript' ]
访问数组元素
可以通过方括号[ ]来访问数组元素。
let subj = ['java','python','javaScript']; console.log(subj[1]); // python console.log(subj['length']); // 3
遍历数组
// 遍历数组 let arrNum = [12,13,14,15,16]; for(let i=0; i < arrNum.length; i++){ console.log(arrNum[i]); } for (let key in arrNum) { console.log(arrNum[key]); // key 为索引 } for(let key of arrNum){ console.log(key); // key 为值 } //其他方式参考对象方法中相关方法
数组对象方法
- concat() ------用于合并两个或多个数组。此方法不会更改现有数组,而是返回一个新数组
let subject = ['java','python']; let city = ['北京','上海','深圳','广州']; let flower = ['兰花','梅花','茉莉花']; let sum = subject.concat(city,flower); console.log(sum);

- push() ------将一个或多个元素添加到数组的末尾,并返回该数组的新长度
let fruit = ['apple','orange','strawberry']; console.log(fruit); // [ 'apple', 'orange', 'strawberry' ] let f1 = fruit.push('banana'); let f2 = fruit.push('watermelon '); console.log(f1); // 4 console.log(f2); // 5 console.log(fruit); // [ 'apple', 'orange', 'strawberry', 'banana', 'watermelon ' ]
- unshift() ------向数组的开头添加一个或更多元素,并返回新的长度
let fruit_1 = ['apple','orange','strawberry']; console.log(fruit_1); // [ 'apple', 'orange', 'strawberry' ] let f1_1 = fruit_1.unshift('banana'); let f2_1 = fruit_1.unshift('watermelon'); console.log(f1_1); // 4 console.log(f2_1); // 5 console.log(fruit_1); // [ 'watermelon ', 'banana', 'apple', 'orange', 'strawberry' ]
- pop() ------删除并返回数组的最后一个元素
let fruit_2 = ['apple','orange','strawberry']; let f1_2 = fruit_2.pop(); console.log(f1_2); // strawberry console.log(fruit_2); // [ 'apple', 'orange' ]
- shift() ------删除并返回数组的第一个元素
let fruit_3 = ['apple','orange','strawberry']; let f1_3 = fruit_3.shift(); console.log(f1_3); // apple console.log(fruit_3); // [ 'orange', 'strawberry' ]
- splice() ------从数组中添加或删除元素
let fruit_4 = ["Banana", "Orange", "Apple", "Mango"]; let f1_4 = fruit_4.splice(2,2); //删除元素,第一个元素为开始的索引,第二个参数为长度 console.log(f1_4); // [ 'Apple', 'Mango' ] console.log(fruit_4); //[ 'Banana', 'Orange' ] let fruit_5 = ["Apple", "Orange", "Mango"]; let f2_5 = fruit_5.splice(2,0,"Pear","Peach"); // 添加元素 console.log(fruit_5); //[ 'Apple', 'Orange', 'Pear', 'Peach', 'Mango' ]
- join() ------将一个数组的所有元素连接成一个字符串并返回这个字符串
let subject2 = ['java','python','javaScript','C++']; let joinSub = subject2.join('---'); console.log(joinSub); // java---python---javaScript---C++
- indexOf() ------返回在数组中可以找到一个给定元素的第一个索引,如果不存在,则返回
-1 lastIndexOf() ------返回在数组中可以找到一个给定元素的最后一个索引,如果不存在,则返回-1
let num = [100,99,98,97,99,100,96,99,100]; console.log(num.indexOf(99)); // 1 console.log(num.lastIndexOf(99)); // 7
- includes() ------判断一个数组是否包含指定的值
let num_1 = [100,99,98,97,99,100,96,99,100]; console.log(num_1.includes(100)); // true console.log(num_1.includes(90)); // false
- isArray() ------判断对象是否为数组
let num_2 = [100,99,98,97,99,100,96,99,100]; let str = 'javaScript'; console.log(Array.isArray(num_2)); // true console.log(Array.isArray(str)); // false
- slice() ------选取数组的一部分,并返回新的数组
let num_3 = [100,99,98,97,99,100,96,99,100]; let sliceNum = num_3.slice(2,7); console.log(sliceNum);
- reverse() ------反转数组的元素顺序
let fruit_6 = ["Apple", "Orange", "Mango"]; console.log(fruit_6.reverse()); // [ 'Mango', 'Orange', 'Apple' ]
- copyWithin() -------浅复制数组的一部分到同一数组中的另一个位置,并返回它,不会改变原数组的长度
var subject3 = ["python", "java","javascript","c++"]; var copy1 = subject3.copyWithin(2,0) // 将索引0的元素拷贝到索引2位置 console.log(copy1); // [ 'python', 'java', 'python', 'java' ]
- entries() ------返回数组的可迭代对象,该对象包含数组的键值对
let fruit_7 = ["Banana", "Orange", "Apple", "Mango"]; for (let [key, value] of Object.entries(fruit_7)) { console.log([key, value]); }
- every() ------对数组中每一项运行给定函数,如果该数组中每一项都返回true,则返回true,否则返回false
let age = [18,16,23,22,21,19,34,17] function ageRange(age) { return age >= 18; } let temp = age.every(ageRange); console.log(temp); // false
- some() ------对数组中每一项运行给定函数,只要该数组中有一项返回true,则返回true,否则返回false
let numList = [23,21,45,22,11,9,34]; function ase(n) { return n > 20; } console.log(numList.some(ase)); // true
- fill() ------使用一个固定的值来填充数组
let fruit_8 = ["Banana", "Orange", "Apple", "Mango"]; let fruit_9 = fruit_8.fill("aaa"); console.log(fruit_9); // [ 'aaa', 'aaa', 'aaa', 'aaa' ]
-
filter() ------检测所有元素,并返回符合条件的所有元素的数组
let age2 = [18,16,23,22,21,19,34,17]; function filterArray(arg) { return arg >= 20; } let filterAge = age2.filter(filterArray); console.log(filterAge); //[ 23, 22, 21, 34 ]
- find() ------返回数组中满足提供的测试函数的第一个元素的值。否则返回 undefined
- findIndex() ------返回数组中满足提供的测试函数的第一个元素的索引。若没有找到对应元素则返回 -1
let age3 = [18,16,23,22,21,19,34,17]; function filterArray3(arg) { return arg >= 20; } console.log(age3.find(filterArray3)); //23 console.log(age3.findIndex(filterArray3)); //2
- forEach() ------数组每个元素都执行一次回调函数
let numEach = [1,2,3,4,5,6]; let calNum; function cacul(arg){ calNum = arg*arg; console.log(calNum); } numEach.forEach(cacul);
- from() ------通过拥有 length 属性的对象或可迭代的对象来返回一个数组
let setObj = "python"; let objArr = Array.from(setObj); console.log(objArr); //[ 'p', 'y', 't', 'h', 'o', 'n' ]
- keys() ------返回数组的可迭代对象,包含原始数组的键(key),对象是数组返回 true,否则返回 false
let arr = ['a', 'b', 'c']; let iterator = arr.keys(); console.log(iterator.next()); // { value: 0, done: false } // map() ------通过指定函数处理数组的每个元素,并返回处理后的数组 let numL = [1,2,3,4,5]; function calcu(x){ return x*x; } let res = numL.map(calcu); console.log(res); //[ 1, 4, 9, 16, 25 ]
- reduce() ------将数组元素计算为一个值(从左到右)
- reduceRight() ------将数组元素计算为一个值(从右到左)
let numL2 = [1,2,3,4,5,6,7,8,9,10,11]; function calcu2(num,total){ return num + total; } let res2 = numL2.reduce(calcu2); console.log(res2); //66
- sort() ------对数组元素进行排序,默认按照字符串UniCode码的顺序进行排序的。sort()可以接收一个比较函数来实现自定义的排序。比较函数应该具有两个参数 a 和 b,返回 a-b 升序,返回 b-a 降序。
let fs = ["Banana", "Orange", "Apple", "Mango"]; fs.sort(); //默认排序顺序为按字母升序 console.log(fs); //[ 'Apple', 'Banana', 'Mango', 'Orange' ] let numList2 = [23,21,45,22,11,9,34]; function sortN(a,b){ return a-b; } let res3 = numList2.sort(sortN); console.log(res3);
- toString() ------把数组转换为字符串,并返回结果
let arrN = [1,2,3,4,5]; console.log(arrN.toString()); // 1,2,3,4,5
记录学习笔记,有其他参考,如有侵权,联系删除
本文来自博客园,作者:rissa,转载请注明原文链接:https://www.cnblogs.com/rissa/p/15179722.html

浙公网安备 33010602011771号