前言
最近在项目中,发现很多冗余的代码,本来是可以通过几行代码就搞定的事情,写了长长的一堆
案例
如下是公司项目里边的一个方法,这里为了简单化,去掉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写出冗长的代码。