javascript - 用数组助手替换嵌套的 for 循环 - 查找优先级元素
问题描述
我希望用数组帮助器替换嵌套的 for 循环实现以进行优化,
该函数从 testArray 返回字符串,其中包含根据 priorityArray 的最高优先级。
const arr1 = ["A_COUNTY","B_STATE","C_COUNTRY", "D_CONTINENT","E_WORLD"];
const arr2 = ["X_COUNTY","Y_STATE","Z_PLANET"];
const priorityArray = ["CONTINENT","COUNTRY","STATE","COUNTY"];
function findPriorityElement(testArray:string[])
{
for (let i = 0; i <priorityArray.length; i++)
for (let j = 0; j <testArray.length; j++) {
if (testArray[j].includes(priorityArray[i]))
return testArray[j];
}
return "";
}
console.log(findPriorityElement(arr1)); // Result: "D_CONTINENT"
console.log(findPriorityElement(arr2)); // Result: "Y_STATE"
任何线索表示赞赏。
解决方案
您可以使用find()
而不是内部 for 循环
const arr1 = ["A_COUNTY", "B_STATE", "C_COUNTRY", "D_CONTINENT", "E_WORLD"];
const arr2 = ["X_COUNTY", "Y_STATE", "Z_PLANET"];
const priorityArray = ["CONTINENT", "COUNTRY", "STATE", "COUNTY"];
function findPriorityElement(testArray) {
for (p of priorityArray) {
const match = testArray.find(e => e.includes(p));
if (match) {
return match;
}
}
}
console.log(findPriorityElement(arr1)); // Result: "D_CONTINENT"
console.log(findPriorityElement(arr2)); // Result: "Y_STATE"
推荐阅读
- python - 每当在python中的字符串中找到日期(yyyy/mm/dd)时添加换行符
- address-sanitizer - AddressSanitizer:堆缓冲区溢出地址与影子字节地址不匹配
- php - Strpos 返回的结果超出预期 - 始终为真
- xstate - 可重用的表单状态机
- python - 如何以不同的方式打印二维数组
- google-cloud-platform - 用 PHP 从谷歌云存储中检索数据
- javascript - 如何优化/加速 Vue JS 应用程序中的自动搜索?
- python - 如何在网站 selenium 上显示错误消息时打印消息
- c - 优化 C 中的 base64 编码和解码
- excel - 显示和隐藏对象