判断以下代码是否可优化,怎么优化: vnwm_zjyj_jtyj.map(rn1 => { return Object.entries(rn1).map(rn1 => { if (/\b(?:rj_jfrs_kp|rj_lclc|rj_wldg|vkih)\b/i.test(rn1[0])) { return rn1[1] } else { return false } }).filter(rn1 => rn1).join('\n') }).join('\n\n')
时间: 2023-03-24 11:03:55 浏览: 56
这段代码可以进行优化。可以使用箭头函数的隐式返回来简化代码,同时可以使用正则表达式的 test 方法来判断是否匹配。优化后的代码如下:
vnwm_zjyj_jtyj.map(rn1 => Object.entries(rn1)
.map(([key, value]) => /\b(?:rj_jfrs_kp|rj_lclc|rj_wldg|vkih)\b/i.test(key) && value)
.filter(Boolean)
.join('\n'))
.join('\n\n')
相关问题
解释以下代码: vnwm_zjyj_jtyj.map(rn1 => { return Object.entries(rn1).map(rn1 => { if (/\b(?:rj_jfrs_kp|rj_lclc|rj_wldg|vkih)\b/i.test(rn1[0])) { return rn1[1] } else { return false } }).filter(rn1 => rn1).join('\n') }).join('\n\n')
这段代码是对 vnwm_zjyj_jtyj 对象进行了一些操作,其中使用了 map() 和 filter() 方法。首先,对 vnwm_zjyj_jtyj 对象进行了一次 map(),返回一个新的数组,其中每个元素都是一个字符串。在这个 map() 中,又使用了一次 map() 方法,对每个元素进行了处理,返回一个新的数组。在这个内部的 map() 中,使用了正则表达式判断 rn1[] 是否匹配指定的字符串,如果匹配,则返回 rn1[1],否则返回 false。最后,使用 filter() 方法过滤掉数组中的 false 值,然后使用 join() 方法将数组转换为字符串,最终得到的字符串是由两个换行符分隔的一些字符串。
以下这段代码是否合理 ``` async function getData(rn1){ return new Promise((resolve, reject) => { setTimeout(() => { resolve('data'+rn1); }, 3000); }); } function i(){ var vnwm_1=[7,8,9] var yy=vnwm_1.map(getData) return yy } ```
这段代码看起来是合理的。
它定义了一个名为 `getData` 的异步函数,该函数接受一个参数 `rn1`,并在三秒钟后返回一个包含字符串 "data rn1" 的 Promise 对象。
另外,它还定义了一个名为 `i` 的函数,该函数创建了一个名为 `vnwm_1` 的数组,并使用 `map` 函数将该数组的每个元素都映射到 `getData` 函数上,最后返回映射后的数组。
但是,这段代码有一个问题:`getData` 函数中的 `resolve` 语句传入的字符串 "data rn1" 中有一个语法错误,应该是 "data" 加上变量 `rn1`,而不是 "data rn1"。因此,如果要使这段代码能够正常工作,需要改正这个语法错误。