以下是操作数组的常用方法
let daysOfWeek = ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'];
daysOfWeek.length;
const fibonacci = []; fibonacci[1] = 1; fibonacci[2] = 1; // 声明了数组 for (let i = 3; i < 20; i++) { fibonacci[i] = fibonacci[i - 1] + fibonacci[i - 2]; } for (let i = 1; i < fibonacci.length; i++) { console.log(fibonacci[i]); }
numbers[numbers.length] = 10;
push
方法numbers.push(11, 12);
unshift
方法numbers.unshift(-1, -2);
pop
方法numbers.pop();
shift
方法numbers.shift();
number.splice(5, 3, 2, 3, 4);
MsaEW5
Page 55
concat
方法const zero = 0; const positiveNumber = [1, 2, 3]; const negativeNumber = [-3, -2, -1]; let numbers = negativeNumber.concat(zero, positiveNumber); console.log(numbers); // -3, -2, -1, 0, 1, 2, 3
每一次对过程的重复称为一次“迭代”,而每一次迭代得到的结果会作为下一次迭代的初始值。
every
方法every 作用是每一个numbers数组成员都能符合函数isEven
就返回true 否则返回false
let result1 = numbers.every(isEven); console.log(result1);
some
方法some 是numbers数组里有一个满足就会返回true 否则返回false
let result2 = numbers.some(isEven); console.log(result2);
forEach
方法和for类似
numbers.forEach(x => console.log(x % 2 === 0));
map
方法JavaScript 还有两个会返回新数组的迭代方法。第一个是 map。
const myMap = numbers.map(isEven);
数组 myMap
里的值是:[false, true, false, true, false, true, false, true, false, true, false, true, false, true, false]。它保存了传入 map 方法的 isEven
函数的运行结果。这样就很容易知道一个元素是否是偶数。比如,myMap[0]
是 false,因为 1 不是偶数;而 myMap[1]
是 true,因为 2 是偶数。
filter
方法它返回的新数组由使函数返回 true 的元素组成。
const evenNumbers = numbers.filter(isEven);
reduce
方法接收 4 个参数:上一个归并值、当前项、当前项的索引和数组本身。
let values = [1, 2, 3, 4, 5]; let sum = values.reduce((prev, cur, index, array) => prev + cur); alert(sum); // 15
元素反转
numbers.reverse();
元素排序(按照字符串进行比较)
numbers.sort();
比较数字(如果没有指明 compareFunction
,那么元素会按照转换为的字符串的诸个字符的Unicode位点进行排序)
numbers.sort((a, b) => a - b);
写一个比较函数
let numbers = [12, 32, 43, 53, 22, 1]; function compare(a, b) { if (a < b) { return -1; } if (a > b) { return 1; } return 0; } numbers.sort(compare); // sort方法接受compareFunction作为参数
在 b 大于 a 时,这段代码会返回负数,反之则返回正数。如果相等的话,就会返回 0。也就是说返回的是负数,就说明 a 比 b 小,这样 sort 就能根据返回值的情况对数组进行排序。
indexOf
方法返回与参数匹配的第一个元素的索引
lastIndexOf
方法返回与参数匹配的最后一个元素的索引
find
和findIndex
方法find
返回第一个满足的值
没有返回undefined
findIndex
返回第一个满足的索引
没有返回-1
includes
方法如果数组存在某个元素,返回true
如果数组不存在某个元素,返回false
toString
把所有元素输出为字符串
join
把所有元素输出为以分隔符隔开
let numbers = [1, 2, 4, 5, 6, 7, 8, 9, 10]; console.log(numbers.join('-'));