Я не знаю, почему, но вам нужно добавить отдельный тип возвращаемого значения:
public class HelloWorld{
static class Value<T> {
}
@FunctionalInterface
interface Bar<T,R> {
R apply(Value<T> value); // Return type added
}
static class Foo {
public static <T,R> R foo(Bar<T,R> callback) {
return callback.apply(new Value<T>());
}
}
void test() {
System.out.println( Foo.foo(value -> true).booleanValue() ); // No compile error here
}
public static void main(String []args){
new HelloWorld().test();
}
}
какой-нибудь умный парень, вероятно, может это объяснить.
MDN ( https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/for...in ) говорит:
Примечание: для ... in не следует использовать для итерации по массиву, где важна последовательность индексов.
Кажется, что в вашем случае порядок важен.
Тем не менее вы можете проверить, в какой итерации вы:
result.indexOf(i)
, чтобы вы могли продолжить, пока ваш индекс итерации равен & lt; 4 вот так:
if(result.indexOf(i) < 4) continue;
Не можете ли вы выполнить цикл только через нужный диапазон?
var startIndex = 4 // 5th element
for(var i=startIndex; i < results.length; i++) {
// (...)
}
for (let i = 4; i < result.length; i++) {
console.log(result[i]);
}
Кто-то отправил ответ несколько минут назад, и это было правильно, и оно сработало, но по какой-то причине оно было удалено, поэтому я переношу его для всех, кто, возможно, пропустил его.
Вот он:
for(var i in result) {
if (i < 5) continue;
console.log(result[i].id);
if (alerted != result[i].id) {
$('#chatAudio')[0].play();
iziToast.show({
message: result[i].notification_text,
messageColor: '#424242',
backgroundColor: '#fff',
theme: 'light',
animateInside: true,
layout: 1,
close: false,
position: 'bottomLeft',
timeout: 5000,
progressBar: false
});
localStorage.setItem('alerted', result[i].id);
}
}