Помогите решить проблему с массивом
Здравствуйте! Есть задача удалить из массива, который содержит значения 2..99, 2*p, 3*p, 4*p и т.д., где p = 2 и p = 3. Вот код, что я написал
<script>
var a = [];
for(var i = 0; i < 98; i++){
a[i] = (i + 2);
}
alert( a );
begin = 2;
index = (a.indexOf(begin) + 1);
var p = 2;
for(i = index; i < 98; i++){
if((a[i] % (begin * p)) == 0){
a[i] = '-';
p++;
}
}
alert(a);
begin = 3;
for(i = 2; i < 98; i++){
if(a[i]=='-'){
continue;
}
if((a[i] % (begin * p)) == 0){
a[i] = '-';
p++;
}
}
alert(a);
</script>
Работает только для p = 2 но не 3. Проблема скорее всего в синтаксисе, а не в логике. Я новичок. Помогите, всю голову сломал:help: |
Bruha1991,
так?
<script>
var arr = [];
for (var i=2; i<100; i++) {
if(i%2 == 0 || i % 3 == 0) continue;
arr.push(i)
};
document.write(arr)
</script>
|
рони,
а если массив изначально сформирован и надо именно удалить, а не формировать из нужных значений? |
__
|
Keramet,
<script>
var arr = [];
for (var i=2; i<100; i++) {
if(i%2 == 0 || i % 3 == 0) continue;
arr.push(i)
};
document.write(arr+"<br>")
for (var i = 2, arr = []; i < 99; i++) arr.push(i);
for (var i=arr.length-1, a; a = arr[i]; i--) {if(a%2 == 0 || a % 3 == 0) arr.splice(i,1)}
document.write(arr)
</script>
|
| Часовой пояс GMT +3, время: 16:18. |