![](/img/trans.png)
[英]How can I get the positions of a for ( … in … ) loop in 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
(沒有-1
和needle = 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.