3 回答

TA貢獻1876條經(jīng)驗 獲得超7個贊
實際上,它似乎有效,我知道問題所在,您希望exists返回一些內(nèi)容,但它返回未定義的內(nèi)容,您沒有從 中返回任何內(nèi)容exists,您應(yīng)該返回DO_BULK_INSERT以查看您的解決方案是否有效。
讓我們談?wù)勗诳勺x性和類型檢查方面您是如何處理的
讓我們同意這里存在類型檢查錯誤,我們正在檢查元素是否為負(數(shù)字)或空(字符串)。這在 TS 方面應(yīng)該是固定的,但是,如果沒有,它應(yīng)該可以工作(畢竟是 JavaScript)
我會做類似的事情
function exists(array) {
function isNegative(x) {
return x >= 0;
}
function isEmptyString(x) {
return x === '';
}
return array.some(element => {
if (element.type === 'static') {
return [element.low, element.mid, element.high].some(prop =>
typeof prop === 'string' ? isEmptyString(prop) : isNegative(prop)
);
}
else {
return "WHATEVER"
}
});
}
不管怎樣,你的代碼很好,它只是沒有返回任何內(nèi)容。

TA貢獻1825條經(jīng)驗 獲得超6個贊
const datas = [{ name: "alpha.keyword#acre-access-reviews-dev|cpu.usage.limit.pct#avg", entity: "alpha.keyword#acre-access-reviews-dev|cpu.usage.limit.pct#avg", type: "static", mid: "1", low: "3", high: "2", }];
const mustSend = datas.every( ({type, high, mid, low }) => type !== 'static' || ( parseInt(high) >= 0 && parseInt(mid) >= 0 && parseInt(low) >= 0 ) );
console.log("Must send?", mustSend);

TA貢獻1946條經(jīng)驗 獲得超3個贊
查看您的代碼,DO_BULK_INSERT即使其中一個元素通過了條件,結(jié)果也會成立。下面應(yīng)該適合你。
exists(array: any[]) {
let STOP_BULK_INSERT = array.some(element => {
if (
element["type"] === "static" &&
(element["mid"] === "" ||
element["low"] === "" ||
element["high"] === "" ||
element["mid"] < 0 ||
element["low"] < 0 ||
element["high"] < 0)
) {
console.log("element = ", element);
return true;
} else {
return false;
}
});
console.log("STOP_BULK_INSERT = ", STOP_BULK_INSERT);
if (STOP_BULK_INSERT) {
console.log("STOP BULK INSERT");
} else {
console.log("DO NOT STOP_BULK_INSERT");
}
}
}
添加回答
舉報