如果循环返回的值中至少有一个为真,则该函数必须返回真。我该怎么做呢?
const addCart = () => {
for (let i = 0; i < props.cart.length; i++) {
return props.cart[i].domainName === props.domainName;
}
};
试试下面的代码。
const addCart = () => {
for (let i = 0; i < props.cart.length; i++) {
if (props.cart[i].domainName === props.domainName) {
return true;
}
}
return false;
};
当找到第一个相等属性时,函数返回true。它使您可以在不检查数组所有元素的情况下获得结果。
我建议:
const addCart = () => {
// here we use Array.prototype.some(),
// which returns a Boolean; true if any
// of the array-elements match the provided
// assessment, or false if not:
return props.cart.some(
(cart) => cart.domainName === props.domainName
);
}
引用:
- 箭头功能。
Array.prototype.some()
.
你可以在这里使用一些
const addCart = () => {
if (props.cart.some((o) => o.domainName === props.domainName)) return true;
return false;
};
或仅使用单一线性解
const addCart = () => props.cart.some((o) => o.domainName === props.domainName);
const addCart = () => props.cart.some(e=>e.domainName===props.domainName);