У меня есть массив js 2d
var a = [["a","b","c","d","e","f"]]
Мне нужно отказаться от последнего и вставить в первую позицию
var result = [["new","a","b","c","d","e"]] //<------ "f" has to be discarded
я пробовал с
a.unshift("new")
Как мне это сделать?
Да 2 тусклый массив
@CodeGuy, тогда у вас может быть больше одного массива внутри внешнего массива?
Используйте unshift
, чтобы добавить новые значения в начало массива, и pop
, чтобы удалить значения из конца.
let a = ["a", "b", "c", "d", "e", "f"];
a.unshift('new');
a.pop();
console.info(a);
Кроме того, в вашем примере - a
- это массив внутри массива, поэтому выполните это во внутреннем массиве.
Чтобы быть еще более общим, вы можете извлечь это для работы и выполнить это для каждого внутреннего массива с помощью map
:
let a = [
["a", "b", "c", "d", "e", "f"]
];
let result = a.map(innerArr => {
innerArr.unshift('new');
innerArr.pop();
return innerArr;
});
console.info(result);
Мне нужен массив 2d, это не массив 2d
@CodeGuy, одномерный массив, вложенный в двумерный массив, по-прежнему является одномерным. Что вам нужно, так это осознать, что unshift()
и pop()
решают вашу проблему.
@CodeGuy я добавил уточнение
Я знаю это, но я ожидаю эффективной и надежной техники
Или @CodeGuy решение для копирования/вставки? OmriAttiya кратко отвечает на ваши вопросы.
@CodeGuy Я добавил более общий способ сделать это для каждого элемента в массиве.
var a = [["a","b","c","d","e","f"]]
a[0].unshift('new');
a[0].pop();
console.info(a);
Вы можете сначала splice
это, а затем использовать unshift
var a = [
["a", "b", "c", "d", "e", "f"]
]
a[0].splice(-1, 1);
a[0].unshift('new');
console.info(a)
Ваш массив действительно двумерный?