Удаление указанного индекса c из массива JavaScript - PullRequest
0 голосов
/ 13 марта 2020

У меня есть небольшой код, который отслеживает индексы, которые я успешно выполняю, но с трудом удаляю их из массива, поэтому я делаю то же, что и у меня.

 var v = [4, 7, 2,5, 3] 
 var f = []
 for (let i = 1; i < v.length; i += 2){
/*(point1)this line doesn't seem to work*/
 if (v[i] > v[i] - 1)
/*(point 2) Instead of console.log I want to delete every of v[i] */
console.log(v[i])

Вывод

7
5

Ожидаемый результат при удалении v [I]

 v = [4,2,3]

Предпочтительно я хотел бы сделать что-то вроде соединения v [i], если v [i]> v [i] -1 и получить обратно v как со сращенными элементами.

Сначала я проверил пункт 1 с помощью этого аналогичного логика c в командной строке, и он работал, но .....;

   if ((b[1] -1) > b[0]){console.log(b[2])}

Выход

3
```

Ответы [ 3 ]

0 голосов
/ 13 марта 2020

Создать новый массив res, удалив ненужные элементы из массива v

var v = [4, 7, 2, 5, 3];
var res = [];
res.push(v[0]);
for (let i = 1; i < v.length; i += 1) {
  if (v[i - 1] > v[i]) {
    res.push(v[i]);
  }
}

console.log(res);
0 голосов
/ 13 марта 2020

Попробуйте метод фильтрации объект массива .

Вместо удаления элемента из текущего массива вы можете отфильтровать нужные значения и получить новый массив, используя метод фильтра объекта массива.

var arr = [0, 1, 2, 3];

var filteredArr = arr.filter(function(element, currentIndex, arrObj) {
   //currentIndex and arrObj can be used to form your desired condition but they are 
  //optional parameter
  // below is the filter condition to be applied on each element
  return element > 0;
});

console.log('filteredArr will have all the elements of the array which satisfies the filter condition:', filteredArr);
0 голосов
/ 13 марта 2020

Чтобы удалить заданный c индекс массива, вы можете использовать соединение, как показано ниже.

var fruits = ["apple", "orange", "avocado", "banana"];
//remove one element starting from index 2
var removed = fruits.splice(2, 1);
//fruits is ["apple", "orange", "banana"]
//removed is ["avocado"]

Однако, что касается if logi c, оно всегда будет истинным, потому что вы тестируете если число больше, чем оно само вычитается на 1. Если вы пытаетесь проверить, больше ли значение в текущей позиции массива, чем значение в предыдущей позиции, то вам следует сделать следующее.

if (v[i] > v[i-1])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...