Оператор for...in
выполняет итерацию по всем не-символическим , перечисляемым свойствам объекта, но порядок итерации не гарантируется в каком-либо конкретном порядке,Таким образом, вы должны избегать for...in
для итерации массива.
Вы можете использовать Array.prototype.map()
, что позволит вам создать новый массив с результатамивызова предоставленной функции для каждого элемента в вызывающем массиве.
var x = [2, -1, 4, -3]
x = x.map( i => {
if(i < 0) i = 0;
return i;
});
console.log(x)
ИЛИ: С Array.prototype.forEach()
var x = [2, -1, 4, -3]
x.forEach((item, i) => {
if(item < 0)
x[i] = 0;
});
console.log(x)
ИЛИ: С простой для петли
var x = [2, -1, 4, -3]
for(var i=0; i<x.length; i++){
if(x[i] < 0)
x[i] = 0;
}
console.log(x);