过滤在javascript中的真实含义



如果循环返回的值中至少有一个为真,则该函数必须返回真。我该怎么做呢?

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);

最新更新