Как указано на этой странице: https://developer.android.com/about/versions/oreo/background
Пределы фонового выполнения Android O по умолчанию не применяются к приложение, которое нацелено на SDK ниже 26, однако пользователь может вручную наложить эти ограничения на старые приложения, перейдя в настройки.
Как указано "Примечание. По умолчанию эти ограничения применяются только к приложениям, ориентированным на Android 8.0 (уровень API 26) или выше. Однако пользователи могут включить большинство этих ограничений для любого приложения на экране" Настройки ", даже если приложение целевой уровень API ниже 26 ".
Это относится к индексу или ключу, а не к значению. 0
и 1
являются допустимыми индексами для этого массива. Есть также допустимые ключи, включая "length"
и "toSource"
. Попробуйте 2 в x
. Это будет false (поскольку массивы JavaScript индексируются по 0).
См. документацию MDN.
Я предполагаю, что Вы используете Python прежде, в JS, используете Array.prototype.includes
let x = [1, 2]
x.includes(1) // true
Оператор Javascript in
не проверяет, содержится ли значение в массиве. Он проверяет, есть ли у объекта свойство или индекс. Итак, var x = [4,5]; 4 дюйм x; // ложь 1 в x; // истина
.
Поскольку длина является свойством x, "длина" в x; // true
Оператор in
делает не то, о чем вы подумали. Оператор in
возвращает true
, если указанный операнд является свойством объекта. Для массивов он возвращает true
, если операнд является допустимым индексом (что имеет смысл, если рассматривать массивы как особый случай объекта, где свойства называются просто 0, 1, 2, ...)
Например, попробуйте так:
javascript:var x=[1,4,6]; alert(2 in x);
Он также вернет true
, потому что "2" - допустимый индекс массива. Таким же образом, "0" является индексом массива, поэтому также возвращает true
.
Современные браузеры, за исключением IE, поддерживают несколько методов, которые могут найти значение в массиве.
indexOf и lastIndexOf возвращают первый (или последний) индекс точного совпадения. их аргумента в массиве или -1, если соответствующий элемент не найден.
if(A.indexOf(0)!= -1){
// the array contains an element with the value 0.
}
Вы можете добавить один или оба метода в IE и старые браузеры -
if(![].indexOf){
Array.prototype.indexOf= function(what, i){
i= i || 0;
var L= this.length;
while(i< L){
if(this[i]=== what) return i;
++i;
}
return -1;
}
Array.prototype.lastIndexOf= function(what, i){
var L= this.length;
i= i || L-1;
if(isNaN(i) || i>= L) i= L-1;
else if(i< 0) i += L;
while(i> -1){
if(this[i]=== what) return i;
--i;
}
return -1;
}
}