JavaScript数组核心方法分三类:不改原数组的slice、concat、map、filter、find、includes;改原数组的push、pop、unshift、shift、splice、fill;遍历聚合的forEach、some、every、reduce。
JavaScript 数组提供了丰富的方法来增删改查、遍历转换和聚合统计,掌握核心方法并理解其特点,是高效操作数据集合的关键。重点不在记全所有方法,而在用对场景——比如该用
就别用
循环手动推新数组,该用
就别写
。
常用增删改查方法(不改变原数组)
这类方法返回新数组或值,安全、函数式友好,适合链式调用:
slice(start, end)
:截取子数组,不修改原数组(
→
)
concat(...arrays)
:合并数组,返回新数组(
→
)
map(fn)
:逐项转换,返回等长新数组(
→
)
filter(fn)
:筛选符合条件的项,返回新数组(
→
)
find(fn)
:返回第一个匹配项(
→
)
includes(value)
:判断是否存在某值,返回布尔值(
→
)
常用增删改查方法(直接修改原数组)
这些方法会改变原始数组,适合明确需要副作用的场景,但要注意避免意外污染:
push(...items)
:末尾添加,返回新长度(
)
pop()
:删除末尾项,返回被删元素
unshift(...items)
:开头添加,性能略差(因需移动所有索引)
shift()
:删除开头项,同样有移动开销
splice(start, deleteCount, ...items)
:万能修改法,可删、可替、可插(
→ 原数组变为
)
fill(value, start, end)
:批量填充指定范围(
→
)
遍历与聚合:选对方法,少写循环
避免无脑
或
,优先用语义清晰的高阶方法:
Eclipse导入Android或其他的JAVA项目的正确方法 WORD版
本文档主要讲述的是Eclipse导入Android或其他的JAVA项目的正确方法;希望本文档会给有需要的朋友带来帮助;感兴趣的朋友可以过来看看
下载
立即学习
“
Java免费学习笔记(深入)
”;
forEach(fn)
:仅遍历,无返回值(适合打日志、发请求等副作用)
some(fn)
:只要一个满足就返回
(
→
)
every(fn)
:全部满足才返回
(
→
)
reduce(fn, init)
:累计计算,灵活强大(求和:
;分组:
)
实用技巧与避坑提醒
高效操作不只是“用什么方法”,更在于怎么组合、怎么避免常见陷阱:
用扩展运算符
快速浅拷贝,比
更直观
处理嵌套数组(
→
),避免手写递归
=
+
,一步到位(
→
)
注意
/
只支持严格相等,对象查找要用
大数组慎用
/
和
开头操作,时间复杂度 O(n)
基本上就这些。熟练组合
、
、
和扩展运算符,90% 的日常数据处理都能写得简洁又健壮。不复杂但容易忽略——关键是理解每个方法的“意图”和“副作用”。
mapforfindfilter()[0][1,2,3].slice(1)[2,3][1].concat([2],[3])[1,2,3][1,2,3].map(x => x * 2)[2,4,6][1,2,3].filter(x => x > 1)[2,3][{id:1},{id:2}].find(x => x.id === 2){id:2}[1,2,3].includes(2)truearr.push(4)[1,2,3].splice(1,1,'a')[1,'a',3][0,0,0].fill(1,1,2)[0,1,0]forfor...oftrue[1,2,3].some(x => x > 2)truetrue['a','b'].every(x => typeof x === 'string')true[1,2,3].reduce((a,b) => a+b, 0)arr.reduce((g,x) => {g[x.type] = g[x.type] || []; g[x.type].push(x); return g;}, {})[...arr]arr.slice()flat(depth)[1,[2,3],[[4]]].flat(2)[1,2,3,4]flatMap(fn)mapflat(1)['a b','c d'].flatMap(s => s.split(' '))['a','b','c','d']indexOflastIndexOffindIndexunshiftshiftsplicemapfilterreduce