![](/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.