20分钟学会18种数组的方法

74 阅读2分钟

10 Common Array Methods

        var arr = ["a", "b", "c"];
//添加新元素到元素的末尾
arr.push("d");
console.log(arr);

console.log(arr.pop());//删除末尾元素
console.log(arr);

// 删除数组中的第一个元素并返回该元素
console.log(arr.shift());
console.log(arr);

// 在你的右边添加一个新元素并返回修改数组的长度
console.log(arr.unshift("p"));
console.log(arr);

//slice 提取数组的一部分并返回一个数组,并且不会修改原始数组
// splice()与slice()相似,但splice会修改原始数组,第一个参数为起始索引,第二个参数是从起点开始计算的项目数,第三个参数是你要添加的item element
console.log(arr.slice(1,3));
console.log(arr.splice(2, 2, "JS Nuggets"));
console.log(arr);

var arr2 = ["g", "q"];
//连接两个数组,组成一个新数组
console.log(arr.concat(arr2));
console.log(arr2);

// 连接数组中的所有元素以创建一个字符串,并且不会修改原始数组
console.log(arr.join("-"));

// 翻转数组中的元素,会改变原数组
console.log(arr.reverse());
console.log(arr);

// 排序会修改原始数组
arr.push("i");
arr.push("f");
arr.sort(arr);
console.log(arr);

image.png

Array iteration: 8 methods

// forEach:对数组中的每一项都做些XXX处理
[1, 2, 3].forEach(function (item, index) {
  console.log(item, index);
});


// map:对数组中的每一项都做些XXX处理,不会修改原数组,返回一个新数组
const three = [1, 2, 3];
const doubled = three.map(function (item) {
  return item * 2;
});
console.log(doubled);


// filter:检查数组中的每个项目,传入某种条件以查看它是真还是假,如果为真,将项目放回数组,如果为假,不会将项目放回数组。
//filter 不会修改原数组,会返回一个新数组
const ints = [1, 2, 3];
const evens = ints.filter(function (item) {
  return item % 2 === 0;
});
console.log(evens);


// reduce:对每一项做一些XXX处理,然后将结果与数组的下一项一起传给下一次迭代,返回迭代的最终的值
const sum = [1, 2, 3].reduce(function (result, item) {
  return result + item;
}, 0);
console.log(sum)


// some:检查数组是否有任何项目满足XXX条件,返回bool
const hasNegativeNumbers = [1, 2, 3, -1, 4].some(function (item) {
  return item < 0;
});
console.log(hasNegativeNumbers);


// every:检查数组每一项都必须满足条件,返回bool
const allPositiveNumbers = [1, 2, -3].every(function (item) {
  return item > 0;
});
console.log(allPositiveNumbers);


// find:搜索数组中的每个项目并根据条件检查他,如果为真,返回该项目,如果没有找到该项目,返回undefined
const objects = [{ id: 'a' }, { id: 'b' }, { id: 'c' }];
const found = objects.find(function (item) {
  return item.id === 'b';
});
console.log(found);


// find index:搜索索引,不是返回项目,而是返回项目的索引
const objects2 = [{ id: 'a' }, { id: 'b' }, { id: 'c' }];
const foundIndex = objects2.findIndex(function (item) {
  return item.id === 'b';
});
console.log(foundIndex)

image.png

自己把代码粘贴到编辑器运行一下,读读注释就明白了。

注:代码光看没用,自己运行,配合注释理解

--完--