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。我该如何实现?
答案 0 :(得分:2)
假设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}}和没有-1
的{{1}}。
答案 1 :(得分:2)
为了过滤出所需的数字,您可以使用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
}
}
答案 2 :(得分: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 }
];
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);
答案 3 :(得分:0)
您可以直接使用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)
}
})