Как соединить несколько элементов массива и вставить их соответствующим образом?

#javascript #vue.js #axios

Вопрос:

 const data = response.data console.log(data) const temp = data.ssps_with_scated.splice(5, 1)(1, 3)[0] data.ps_with_ed.splice(2, 1, 0, temp) 

я пытаюсь добиться того, чтобы, наконец, я получил это. Но проблема в том, что я не могу ожидать, что значение массива все время будет одинаковым. Поэтому я решил переупорядочить значения массива на основе идентификатора.

Ответ №1:

Что ж,

 splice(7,1)(21,3)  

Этот код приведет к ошибке. Так как Array.prototpy.slice возвращает новый массив.
Было бы то же самое, если бы вы сделали это:

 const a = [1,2,3] const b = a.splice(1,1); b(2,1) // b.splice(...) is not a function  

отредактированный: Может быть, есть более быстрое/лучшее решение, но… Вы можете сделать его более общим, но только для вашего случая:

 const array = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21]; const first = array[7]; const second = array[21];  // Add elements on certain indices in array (second and third) array.splice(2, 0, first, second)  // Remove first from the array (index is 7   2 because we added 2 elements) array.splice(9, 1)  // Remove 21 from the array (index is 22 - 1 because we added 2 elements and removed 1, not: number 21 is on index 22) array.splice(21, 1);  

Комментарии:

1. Пожалуйста, вы можете просто указать в своем первоначальном вопросе свой точный сценарий. Поставьте массив примеров, скажем, [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25] и ваш ожидаемый результат?

2. Пожалуйста, как я уже сказал, ваш код здесь не важен. Чего вы пытаетесь достичь, я не понимаю ни из вашего объяснения, ни из вашего кода? Приведите только пример массива, и какого результата вы хотите ожидать?

Ответ №2:

data не должно быть a const , так как значение обновляется. Splice также может быть вызван только для одного массива за раз. Если вам нужно вызвать его для нескольких массивов, создайте цикл или выполните итерацию по ним.

Если вы хотите ввести текущее значение 7-й позиции во 2-ю позицию… вам нужно было бы сделать что-то вроде…

array.splice(2, 0, array[7])

Комментарии:

1. Да, вы правы. Но мне нужно вызвать несколько значений массива. Так что для того, чтобы это сделать. Может соединять массив и создавать их

2. Если вы хотите ввести значения более чем одного индекса в массив, вам нужно будет вызвать splice более одного раза. Вы можете ввести несколько значений в один индекс, например, Array.splice(a, 0, b, c) где a равно индексу, в который вы хотите ввести значения b и c.

Ответ №3:

В одну сторону :

 arr = [0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21]   arr.splice(2, 0, arr[7], arr[21])  arr.splice(9, 1)  arr.splice(22, 1)  console.log(JSON.stringify(arr))  //[0,1,7,21,2,3,4,5,6,8,9,10,11,12,13,14,15,16,17,18,19,20,]