第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

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

使用 for 循環(huán)的 array.some() 方法問題

使用 for 循環(huán)的 array.some() 方法問題

慕萊塢森 2024-01-18 09:57:28
var phaseOne = [  {    streetNumberLow: "1",    streetNumberHigh: "436",    streetName: "barnhart",    streetCode: "rd",    city: "waynesburo",    state: "va",    zipCode: "22980",  }];var phaseOneExt = [  {    streetNumberLow: "580",    streetNumberHigh: "1002",    streetName: "battlefield",    streetCode: "rd",    city: "fort defiance",    state: "va",    zipCode: "24437",  }];var phaseTwo = [  {    streetNumberLow: "1",    streetNumberHigh: "727",    streetName: "bailey",    streetCode: "rd",    city: "fort defiance",    state: "va",    zipCode: "24437",  }];var phaseTwoCares = [  {    streetNumberLow: "728",    streetNumberHigh: "996",    streetName: "bailey",    streetCode: "rd",    city: "fort defiance",    state: "va",    zipCode: "24437",  }];function parseAddressString(str) {  var matches = str.match(    /(?<streetNumber>\d+)\s+(?<streetName>[\w\s-]+)\s+(?<streetCode>\w+),?\s+(?<city>[\w\s-]+),?\s+(?<state>\w+),?\s+(?<zipCode>\d+)/  );  if (matches) {    return matches.groups;  }  return false;}function doesStringMatch(a, b) {  return a.toLowerCase().includes(b.toLowerCase());}function doesAddressMatchPhase(address, phase) {  return (    address &&    +address.streetNumber >= +phase.streetNumberLow &&    +address.streetNumber <= +phase.streetNumberHigh &&    doesStringMatch(address.streetName, phase.streetName) &&    doesStringMatch(address.streetCode, phase.streetCode) &&    doesStringMatch(address.city, phase.city) &&    doesStringMatch(address.state, phase.state) &&    doesStringMatch(address.zipCode, phase.zipCode)  );}我目前正在構建一個 JavaScript 工具,它將地址作為輸入,并將其與服務區(qū)域內的臨時地址數(shù)據(jù)庫進行比較。我使用 array.some() 方法循環(huán)訪問服務區(qū)域的每個相數(shù)組中的每個對象屬性。如果前一個階段返回 false,我還需要它來查看每個階段。因為我使用 for 循環(huán)來循環(huán)遍歷每個相位數(shù)組,所以 .some 方法中所需的返回會導致我的函數(shù)在第一個循環(huán)中退出。問題出在 isEligible(str) 函數(shù)內。附加的代碼片段中是損壞的代碼。如果我將 return 放在函數(shù)的最后兩行前面,我可以讓它工作,但如果在第一階段內找不到地址,它不會讓循環(huán)繼續(xù)。
查看完整描述

1 回答

?
至尊寶的傳說

TA貢獻1789條經驗 獲得超10個贊

eligible = isEligible(str);是一個邏輯錯誤。eligible永遠是undefined因為isEligible()沒有返回值。(我不得不這么說,盡管你的評論表明你知道這一點)。

要解決此問題,請返回結果doesAddressMatchPhase()并將返回結果存儲.some()在變量中。然后在.some()調用之后立即測試該變量是否為真,如果是,則中斷循環(huán)并立即返回該變量。否則,等到函數(shù)結束時返回默認 false。

這是工作解決方案:

var phaseOne = [

  {

    streetNumberLow: "1",

    streetNumberHigh: "436",

    streetName: "barnhart",

    streetCode: "rd",

    city: "waynesburo",

    state: "va",

    zipCode: "22980",

  }

];


var phaseOneExt = [

  {

    streetNumberLow: "580",

    streetNumberHigh: "1002",

    streetName: "battlefield",

    streetCode: "rd",

    city: "fort defiance",

    state: "va",

    zipCode: "24437",

  }

];


var phaseTwo = [

  {

    streetNumberLow: "1",

    streetNumberHigh: "727",

    streetName: "bailey",

    streetCode: "rd",

    city: "fort defiance",

    state: "va",

    zipCode: "24437",

  }

];


var phaseTwoCares = [

  {

    streetNumberLow: "728",

    streetNumberHigh: "996",

    streetName: "bailey",

    streetCode: "rd",

    city: "fort defiance",

    state: "va",

    zipCode: "24437",

  }

];


function parseAddressString(str) {

  var matches = str.match(

    /(?<streetNumber>\d+)\s+(?<streetName>[\w\s-]+)\s+(?<streetCode>\w+),?\s+(?<city>[\w\s-]+),?\s+(?<state>\w+),?\s+(?<zipCode>\d+)/

  );

  if (matches) {

    return matches.groups;

  }

  return false;

}


function doesStringMatch(a, b) {

  return a.toLowerCase().includes(b.toLowerCase());

}

function doesAddressMatchPhase(address, phase) {

  return (

    address &&

    +address.streetNumber >= +phase.streetNumberLow &&

    +address.streetNumber <= +phase.streetNumberHigh &&

    doesStringMatch(address.streetName, phase.streetName) &&

    doesStringMatch(address.streetCode, phase.streetCode) &&

    doesStringMatch(address.city, phase.city) &&

    doesStringMatch(address.state, phase.state) &&

    doesStringMatch(address.zipCode, phase.zipCode)

  );

}


function isEligible(str) {

  var address = parseAddressString(str);

  var phases = [phaseOne, phaseOneExt, phaseTwo, phaseTwoCares];

  var x;

  let found = false;

  for (x = 0; x < phases.length; x++) {

    found = phases[x].some(function (phase) {

      return doesAddressMatchPhase(address, phase);

    });

    if(found) {

      break;

    }

  }

  return found;

}


function addressValidation() {

  var str = document.getElementById("address").value,

    eligible = isEligible(str);

  document.getElementById("demo").innerHTML = eligible ? "true" : "false";

}

@import url('https://fonts.googleapis.com/css2?family=Bebas+Neue&family=Poppins:wght@400;700&display=swap');


/* Global */


* {

    margin: 0;

    padding: 0;

    font-family: 'Bebas Neue', cursive;

}


#address-checker {

    height:25vh;

    width: 60%;

    margin: auto;

    margin-top: -3vh;

    padding: 3vw;

    background-color: #fff;

    position: relative;

    z-index: 1;

    box-shadow: 0 .5rem 1rem rgba(0, 0, 0, 0.5);

}


.checker-container {

    height: 25vh;

}


.address-header {

    padding: 3vh 0 2vh 0;

    text-align: center;

    color: #2277AE;

    letter-spacing: 1px;

    font-size: clamp( 1.5rem, 3.5vw, 3.5rem);

}


.address-checker-input {

    padding: 1vh 0;

}


.address-box {

    margin: 1.5vh 0 0 10vw ;

    width: 60%;

    padding: .75rem 0 .75rem .5rem;

    border-radius: 10px;

    border: #2277AE 2px solid;

    color: #2277AE;

}


.address-box:hover {

    border-color: #FEA00B;

    transition: .2s;

}


.go-btn {

  background-color: #2277AE;

  padding: .75rem;

  border-radius: 10px;

  border: #2277AE 2px solid;

  color: #fff;

}


.go-btn:hover {

    border-color: #FEA00B;

    background-color: #FEA00B;

    transition: .2s;

}

<html>

<head>

    <link rel="stylesheet" href="style.css">

</head>

<body>

  

<section id="address-checker">

      <div class="checker-container">

        <h1 class="address-header">

          Is fiber to the home available for you?

        </h1>

        <div class="address-checker-input">

            <input

              id="address"

              type="text"

              name="searchaddress"

              placeholder="Street Address, City, State, Zip Code"

              class="address-box"

              value="200 barnhart rd waynesburo, va 22980"

            />

            <button class="go-btn" onclick="addressValidation()">Go</button>

        </div>

        <p id="demo"></p>

      </div>

</section>


</body>

<script src="main.js"></script>

</html>


查看完整回答
反對 回復 2024-01-18
  • 1 回答
  • 0 關注
  • 142 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

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

公眾號

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