簡體   English   中英

我如何在Javascript中立即獲得循環和過濾

[英]How can i get loop and filter at once in Javascript

  const count = [ {number: 1}, {number: 2}, {number: 3}, {number: 4}, {number: 5}, {number: 6}, {number: 7}, {number: 8}, {number: 9}, {number: 10}, {number: 11}, {number: 12}, {number: 13}, {number: 14}, {number: 15} ]; for(let i = 0;i < count.length; i++) { document.write(count[i].number); } 

如果我要退出循環的主要數字是5,但是我想寫出5以上的數字和5以下的數字。那么456。我該如何實現呢?

假設needle是唯一的,您可以。 .filter的數字,然后.forEach打印它們。

 const needle = 5 const haystack = [ {number: 1}, {number: 2}, {number: 3}, {number: 4}, {number: 5}, {number: 6}, {number: 7}, {number: 8}, {number: 9}, {number: 10}, {number: 11}, {number: 12}, {number: 13}, {number: 14}, {number: 15} ] haystack .sort((a, b) => a.number - b.number) // skip this if haystack is already sorted. .filter(el => [needle - 1, needle, needle + 1].includes(el.number)) .forEach(el => { document.write(el.number) }) 

請注意,您必須防止needle = 0 (沒有-1needle = 15 (沒有+1

為了過濾出您想要的數字,您可以使用if語句檢查當前對象的數字count[i].number是否為您想要的值,如果是,則打印出其關聯的值。

您可以通過更改i的值來訪問該對象。 使用i-1您將獲得當前值之前的元素。 同樣,使用i+1您將在當前值之后轉到對象。

最后,您應該檢查i的值以確保它落在數組內。 例如,如果您選擇查找數字1則它沒有在對象之前,因此您需要檢查這種情況!

請參見下面的工作示例:

 const count = [ {number: 1}, {number: 2}, {number: 3}, {number: 4}, {number: 5}, {number: 6}, {number: 7}, {number: 8}, {number: 9}, {number: 10}, {number: 11}, {number: 12}, {number: 13}, {number: 14}, {number: 15} ]; const toFind = 5; for(let i = 0; i < count.length; i++) { if(count[i].number == toFind) { if(i-1 >= 0) console.log(count[i-1].number); console.log(count[i].number); if(i+1 < count.length) console.log(count[i+1].number); break; // complete loop cycle } } 

  const count = [ { number: 1 }, { number: 2 }, { number: 3 }, { number: 4 }, { number: 5 }, { number: 6 }, { number: 7 }, { number: 8 }, { number: 9 }, { number: 10 }, { number: 11 }, { number: 12 }, { number: 13 }, { number: 14 }, { number: 15 } ]; var index = count.findIndex(item => item.number === 5); document.write(count[index - 1].number); document.write(count[index].number); document.write(count[index + 1].number); 

您可以直接使用forEach,並且可以基於范圍寫入文檔。

 const count = [{number: 1},{number: 2},{number: 3},{number: 4},{number: 5},{number: 6},{number: 7},{number: 8},{number: 9},{number: 10},{number: 11},{number: 12},{number: 13},{number: 14},{number: 15}]; count.forEach(({number})=> { if(number>3 && number<7){ document.write(number) } }) 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM