前言
最近在项目中,发现很多冗余的代码,本来是可以通过几行代码就搞定的事情,写了长长的一堆
案例
如下是公司项目里边的一个方法,这里为了简单化,去掉ajax等代码,改为静态代码,知道有这个意思就行了
function delMethod(methodName) {
let oldMethods = ['getStudentById', 'getAllStudents', 'deleteStudentById', 'updateStudentById']
let newMethods = []
for (let method of oldMethods) {
if (method !== methodName) {
newMethods.push(method)
}
}
return newMethods;
}
这里其实就是删除数组里边的一个对象,然后返回出去,但是写了很长的代码,实际可以通过使用JS数组的splice方法就可以轻松做到了:
function delMethodV2(methodName) {
let oldMethods = ['getStudentById', 'getAllStudents', 'deleteStudentById', 'updateStudentById']
oldMethods.splice(oldMethods.findIndex(e => e === methodName),1)
return oldMethods
}
API列举
举几个例子
/**
* every
* 主要用于检查
* 如果所有元素都满足条件,则返回 true
* 如果数组中检测到有一个元素不满足,则整个表达式返回 false ,且剩余的元素不会再进行检测
*/
let ages = [32, 33, 16, 40];
console.log("所有人的年龄都小于50:", ages.every(k => k < 50)) // 所有人的年龄都小于50: true
/**
* slice
* 主要用于截取
*
*/
let company = ['淘宝', '京东', '拼多多', '苏宁', '唯品会', '蘑菇街']
let newCompany = company.slice(0, 3)
console.log(newCompany) // ["淘宝", "京东", "拼多多"]
/**
* splice
* 主要用于删除
*/
let g = ['ig', 'rng', 'eng', 'fpx', 'g2']
g.splice(1, 1)
console.log(g) // ["ig", "eng", "fpx", "g2"]
// 搜索 + 删除
g.splice(g.findIndex(e => e === 'ig'), 1)
console.log(g) // ["eng", "fpx", "g2"]
具体可以看代码,里边注释也写得很清楚了
小结
JS里边的api,浩瀚如海,这里抛砖引玉,希望写JS的人,平时可以留意下JS的知识,以起到简化代码的效果,而不是借助古老的for、if、while写出冗长的代码。