1.forEach 不改变原数组,也没有返回值
var arr = [{ id: 1 }, { id: 2 }, { id: 3 }];
arr.forEach((item, index) => {
item.name = "jack";
});
console.log(arr);
2.map 不改变原数组, 返回一个新数组
var arr = [1, 2, 3, 4];
let arr1 = arr.map((item, index, arr) => {
return item * 10;
});
console.log(arr, arr1);
3.filter 不改变原数组,返回一个过滤后的新数组
var arr = [1, 2, 3, 4];
const res = arr.filter(item => item >= 3);
console.log(res);
4.some 遍历数组, 如果筛选条件存在,就返回true,否则返回false
var arr = [{ id: 1 }, { id: 2 }, { id: 3 }];
let arr1 = arr.some( (item,index) => item.id === 4);
console.log(arr1);
5.every 遍历数组, 如果筛选的条件里,每一项返回的都是true, 最终结果为true。 有一项为false,最终结果就喂false
var arr = [{ id: 1 }, { id: 2 }, { id: 3 }];
let arr1 = arr.some( (item,index) => item.id === 4);
console.log(arr1);
6.findIndex 返回符合条件的值的第一个索引
var arr = [{ id: 1 }, { id: 2 }, { id: 3 }];
const index = arr.findIndex(item=> item.id ===1)
console.log(index);
练习:
1.要求以boolean的形式返回字符串参数中是否包含数字。
本题tip:isNaN(value)可以判断value是否为NaN,不是就返回false,是就返回true
parseInt(value),如果可以转化为数字,就返回数字,不可以转化为数字,就返回NaN
function _search(string) {
let arr = [...string]
const res = arr.some(item=> isNaN(parseInt(item)))
return res //返回true或者false
}
2.移除数组 arr 中的所有值与 item 相等的元素。不要直接修改数组 arr,结果返回新的数组
function remove(arr, item) {
return arr.filter(value => value != item)
}
3.移除数组 arr 中的所有值与 item 相等的元素。直接修改原数组
function removeWithoutCopy(arr, item) {
for(var i=0;i<arr.length;i++){
if(arr[i] === item){
arr.splice(i,1)
i-- //这个是重点,删除后,数组长度会变短 所以需要--
}
}
return arr
}
4.在数组末尾添加一个item,并且返回新数组。
function append(arr, item) {
return [...arr,item]
}
es6数组语法(待更新)
于 2022-04-07 21:32:08 首次发布