亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

對對象數組執行一些檢查,如果其中一個條件匹配,則停止批量請求

對對象數組執行一些檢查,如果其中一個條件匹配,則停止批量請求

慕尼黑8549860 2023-09-14 22:01:06
我有一個包含 1000 個元素的對象數組,其中每個對象都有以下屬性: 名稱、實體、類型、中、低、高。我必須對整個數組 [{},{},..] 執行以下檢查:(注意:類型可以是“靜態”或“動態”)if( type === 'static' ) ---> 然后檢查 if( mid || high || low ) 是否為空或負 ----> 然后才執行批量請求。if( type === 'dynamic' ) ---> 然后通過示例 - 如果我有 800 個元素,甚至其中 1 個元素的type = 'static' && high、mid 或 low中的任何一個為負數或為空,那么整個 800 個元素根本不應該發送到后端,而是顯示向用戶發送消息以更正該 1 元素數據。我嘗試了很多邏輯,但沒有任何作用,下面是我最新嘗試的(使用 array.some()):import {Component, OnInit} from '@angular/core';/** * @title Button varieties */@Component({  selector: 'button-types-example',  templateUrl: 'button-types-example.html',  styleUrls: ['button-types-example.css'],})export class ButtonTypesExample implements OnInit {   data = [    {      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: "",    },    {      name: "alpha.keyword#alphasi500-dev|cpu.usage.limit.pct#avg",      entity: "alpha.keyword#alphasi500-dev|cpu.usage.limit.pct#avg",      type: "dynamic",      mid: "",      low: "",      high: ""    },    {      name: "alpha.keyword#ams-dev|cpu.usage.limit.pct#avg",      entity: "alpha.keyword#ams-dev|cpu.usage.limit.pct#avg",      type: "dynamic",      mid: "",      low: "",      high: ""    },    {      name: "alpha.keyword#analytics-services-dev|cpu.usage.limit.pct#avg",      entity: "alpha.keyword#analytics-services-dev|cpu.usage.limit.pct#avg",      type: "dynamic",      mid: "",      low: "",      high: ""    },    {      name: "alpha.keyword#appsec-dev|cpu.usage.limit.pct#avg",      entity: "alpha.keyword#appsec-dev|cpu.usage.limit.pct#avg",      type: "dynamic",      mid: "",      low: "",      high: ""    },
查看完整描述

3 回答

?
幕布斯6054654

TA貢獻1876條經驗 獲得超7個贊

實際上,它似乎有效,我知道問題所在,您希望exists返回一些內容,但它返回未定義的內容,您沒有從 中返回任何內容exists,您應該返回DO_BULK_INSERT以查看您的解決方案是否有效。


讓我們談談在可讀性和類型檢查方面您是如何處理的


讓我們同意這里存在類型檢查錯誤,我們正在檢查元素是否為負(數字)或空(字符串)。這在 TS 方面應該是固定的,但是,如果沒有,它應該可以工作(畢竟是 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"

    }

  });

}

不管怎樣,你的代碼很好,它只是沒有返回任何內容。


查看完整回答
反對 回復 2023-09-14
?
胡子哥哥

TA貢獻1825條經驗 獲得超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);


查看完整回答
反對 回復 2023-09-14
?
智慧大石

TA貢獻1946條經驗 獲得超3個贊

查看您的代碼,DO_BULK_INSERT即使其中一個元素通過了條件,結果也會成立。下面應該適合你。


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

    }

  }

}


查看完整回答
反對 回復 2023-09-14
  • 3 回答
  • 0 關注
  • 170 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號