这个工具目前是免费的,能用多久不确定。
https://chatgpt.sbaliyun.com/
用法:
在上面的文本框中输入问题,例如:
能对它进行优化吗?然后说一下优化前后的差别。getIds(arr, id) { return _.reduce( arr, (str, item, index) => { if (id === 'value' && !item.disabled) { str === '' ? (str = item[id]) : (str += ',' + item[id]); } else if (id !== 'value') { index === 0 ? (str = item[id]) : (str += ',' + item[id]); } return str; }, '' );},
然后点“回答”,等一会儿下面就会显示结果,如果等很久没反应,那就刷新重试下。
代码前面的问题可以用自己的语言写,只要能正确表达你的问题就好。例如:
请对以下代码进行优化,要考虑各种用例下的异常处理,然后说一下优化了哪些地方。
我将优化结果再次让它优化,反复几次,得到的结果真的很厉害!
其实vscode中有chatGPT插件,只是国内用起来有点麻烦。
注意!优化结果请人工审核一下,有时可能会有一些问题。
示例:
getIds(arr, id) { return _.reduce( arr, (str, item, index) => { if (id === 'value' && !item.disabled) { str === '' ? (str = item[id]) : (str += ',' + item[id]); } else if (id !== 'value') { index === 0 ? (str = item[id]) : (str += ',' + item[id]); } return str; }, '' );},
getIds(arr, id) { let str = ''; for (let i = 0; i < arr.length; i++) { const item = arr[i]; if (id === 'value' && !item.disabled) { str === '' ? (str = item[id]) : (str += ',' + item[id]); } else if (id !== 'value') { i === 0 ? (str = item[id]) : (str += ',' + item[id]); } } return str;},
优化前:每次循环都会判断是否是第一个,如果是第一个则str赋值,如果不是第一个则str拼接,存在性能消耗。优化后:判断第一个元素的时候就赋值,之后的循环直接拼接,减少了判断的次数。getIds(arr, id) { let str = ''; if (arr.length === 0) { return str; } str = arr[0][id]; for (let i = 1; i < arr.length; i++) { const item = arr[i]; if (id === 'value' && !item.disabled) { str += ',' + item[id]; } else if (id !== 'value') { str += ',' + item[id]; } } return str;}
getIds(arr, id) { let str = ''; if (arr.length === 0) { return str; } const result = arr.filter(item => item.disabled !== true).map(item => item[id]); str = result.join(','); return str;}
getIds(arr, id) { if (!arr || arr.length === 0) { return ''; } return arr .filter(item => !item.disabled && item[id] !== undefined) .map(item => item[id]) .join(',');},