arr?.foreach
时间: 2023-09-05 22:08:50 浏览: 54
arr?.foreach 是一种安全的方式来遍历数组。在 C# 中,`?.` 是一个可空成员访问运算符,它会检查左边的操作数是否为 null,如果不是 null,则调用右边的方法或属性。如果左边的操作数为 null,则整个表达式的值为 null,且不会引发 NullReferenceException 异常。
因此,当你使用 `arr?.foreach` 时,如果 arr 是 null,foreach 循环将不会被执行,也不会引发异常。这在需要遍历一个可能为 null 的数组时非常有用,能够提高代码的健壮性和安全性。
相关问题
arr?.forEach
这是一个 JavaScript 中的语法,意思是如果 `arr` 存在且不为 null 或 undefined,则对它进行遍历,遍历时对于每个元素都执行一个回调函数。如果 `arr` 为 null 或 undefined,则不会进行遍历。这种语法通常用于避免因为访问 null 或 undefined 的属性或方法而导致的错误。
async function confirm() { isShow.value = false; // params.value.pageSize = 7 let i = menu.value.find((v) => v.isActive === true).id - 1; if (i === 0) { params.value.houseType = tagsList.value.find( (v) => v.isActive === true )?.value; } else if (i === 1) { params.value.orientation = tagsList.value.find( (v) => v.isActive === true )?.value; } else if (i === 2) { params.value.rentStr = tagsList.value.find( (v) => v.isActive === true )?.value; } else if (i === 3) { let arr = []; tagsList.value?.forEach((v) => { if (v.isActive === true) { arr.push(v.value * 1); } }); if (arr.length > 0) { params.value.houseLabels = arr.join(","); } } search(); }优化
可以将这段代码优化为:
```
isShow.value = false;
// params.value.pageSize = 7
const i = menu.value.findIndex(v => v.isActive) - 1;
if (i === 0) {
params.value.houseType = tagsList.value.find(v => v.isActive)?.value;
} else if (i === 1) {
params.value.orientation = tagsList.value.find(v => v.isActive)?.value;
} else if (i === 2) {
params.value.rentStr = tagsList.value.find(v => v.isActive)?.value;
} else if (i === 3) {
const arr = tagsList.value?.filter(v => v.isActive)?.map(v => v.value * 1);
if (arr?.length) {
params.value.houseLabels = arr.join(",");
}
}
search();
```
这样可以将代码变得更加简洁和易读,同时也可以避免使用可选链操作符时的一些潜在问题。