Как из одного массива передать данные в другой js
Перейти к содержимому

Как из одного массива передать данные в другой js

  • автор:

Простое клонирование/копирование массива в JavaScript

Чтобы клонировать/копировать содержимое массива, все, что вам нужно сделать, это вызвать метод slice, передав 0 в качестве первого аргумента:

var clone = myArray.slice(0); 

Код выше создает копию исходного массива; имейте в виду, если в вашем массиве существуют объекты — они хранятся как ссылки; т.е. код выше не делает “deep” клонирование содержимого массива.

Чтобы добавить копирование, как нативный метод к массивам, вы могли бы сделать что-то вроде этого:

Array.prototype.clone = function () < return this.slice(0); >; 

Давайте напишем рекурсивную функцию, чтобы копировать массив, который потенциально может иметь вложенные объекты или массивы:

function arrayClone (arr) < var i, copy; if (Array.isArray(arr)) < copy = arr.slice(0); for (i = 0; i < copy.length; i++) < copy[i] = arrayClone(copy[i]); >return copy; > else if (typeof arr === 'object') < throw 'Cannot clone array containing an object!'; >else < return arr; >> 

Если вы используете Underscore – можете сделать это еще короче:

function arrayClone (arr) < if (_.isArray(arr)) < return _.map(arr, arrayClone); >else if (typeof arr === 'object') < throw 'Cannot clone array containing an object!'; >else < return arr; >> 

С версии ECMAScript 2015 был введен метод Object.assign(), с его помощью глубокое клонирование можно реализовать еще проще:

var clone = Object.assign([], myArray); 

Заключение

Если вам нужно глубокое копирование произвольно-вложенных объектов и/или массивов, крошечный node-clone прекрасно с этим справиться. Он будет правильно обрабатывать даже копирование объектов с циклическими ссылками!

Источники

  • Clone Arrays with JavaScript
  • How to Clone a (Nested) Array in Javascript

Как переместить объект из одного массива в другой?

при помощи функции, в которую входит какой то field .
Как можно это сделать?

  • Вопрос задан более трёх лет назад
  • 766 просмотров

Комментировать

Решения вопроса 0

Ответы на вопрос 2

Stockholm Syndrome @StockholmSyndrome

fieldsListInTotal.push(fieldsListInActive.find((item) => item.field === 'id'));

Ответ написан более трёх лет назад

Комментировать

Нравится Комментировать

Deeepi

Попробуй так

const findIndex = fieldsListInTotal.findIndex(i => i.field === field) if (findIndex !== -1)

Ответ написан более трёх лет назад

Комментировать

Нравится Комментировать

Ваш ответ на вопрос

Войдите, чтобы написать ответ

javascript

  • JavaScript
  • +1 ещё

Выгрузка JS кода в php, но не просто?

  • 1 подписчик
  • 5 часов назад
  • 53 просмотра

javascript

  • JavaScript
  • +1 ещё

Насколько верно написана функция вывода цепочки прототипа?

  • 1 подписчик
  • 8 часов назад
  • 66 просмотров

javascript

  • JavaScript
  • +1 ещё

Какой плагин для смены изображения при наведении использовать?

  • 1 подписчик
  • 9 часов назад
  • 52 просмотра

javascript

  • JavaScript

Как открыть только на текущий айтем в jq?

  • 1 подписчик
  • 15 часов назад
  • 70 просмотров

javascript

  • JavaScript

Как в кастомном Choices.js отрендерить чекбоксы?

  • 1 подписчик
  • 15 часов назад
  • 39 просмотров

javascript

  • JavaScript
  • +1 ещё

Как извлечь ссылку?

  • 1 подписчик
  • 15 часов назад
  • 76 просмотров

javascript

  • JavaScript
  • +1 ещё

Как прервать выполнение скриптов на стороннем сайте?

  • 2 подписчика
  • 17 часов назад
  • 91 просмотр

javascript

  • JavaScript

Почему не работает onclick?

  • 2 подписчика
  • вчера
  • 85 просмотров

javascript

  • JavaScript

Можно ли ещё сократить код?

  • 1 подписчик
  • вчера
  • 139 просмотров

javascript

  • JavaScript
  • +1 ещё

Какая js-библиотека может распознавать русскую речь офлайн?

  • 2 подписчика
  • вчера
  • 86 просмотров

от 150 000 до 300 000 ₽

от 200 000 до 600 000 ₽

Zaymigo • Нижний Новгород

30 окт. 2023, в 01:46

8000 руб./за проект

30 окт. 2023, в 01:42

10000 руб./за проект

30 окт. 2023, в 01:00

50000 руб./за проект

Минуточку внимания

Присоединяйтесь к сообществу, чтобы узнавать новое и делиться знаниями

  • Установка Zabbix Agent на большое количество машин Windows без домена?
    • 3 подписчика
    • 1 ответ
    • 2 подписчика
    • 1 ответ
    • 2 подписчика
    • 0 ответов
    • 2 подписчика
    • 2 ответа
    • 2 подписчика
    • 1 ответ
    • 1 подписчик
    • 2 ответа
    • 2 подписчика
    • 0 ответов
    • 2 подписчика
    • 0 ответов
    • 1 подписчик
    • 2 ответа
    • 2 подписчика
    • 0 ответов

    Как скопировать данные одного массива в другой js?

    Которая по идее должна сохранять содержимое массива arr2 в массив arr1. Но она не работает и я не понимаю почему. Консоль тоже ни на что не ругается. Так же пробовал варианты вроде:

     1. for (var i=0; i; 2. arr2.push(arr1); 3. arr2 = [].concat(arr1); 

    И еще несколько подобных комбинаций, но ни одна не сработала как надо. Что я делаю не так? Как заставить данные одного массива переместиться в другой? Содержимое массива arr1 (так он отображается в консоли в процессе чтения):

    0: Cards accuracy: 30 attak: 10 attaktipe: "melee" defence: 5 dexterity: 50 health: 100 speed: 10 suits: "spearman" [[Prototype]]: Object 1: Cards accuracy: 80 attak: 15 attaktipe: "melee" defence: 10 dexterity: 30 health: 100 speed: 5 suits: "armoredman" [[Prototype]]: Object 

    Второй массив просто обьявлен, как переменная:

    let arr2 = new Array(); 

    Как скопировать один массив в другой java

    Для копирования одного массива в другой в Java можно использовать метод System.arraycopy() или использовать цикл for для копирования каждого элемента в новый массив.

    Пример использования System.arraycopy() :

    int[] source = 1, 2, 3, 4, 5>; int[] destination = new int[source.length]; System.arraycopy(source, 0, destination, 0, source.length); System.out.println(Arrays.toString(destination )); // => [1, 2, 3, 4, 5] 

    Пример использования цикла for :

    int[] source = 1, 2, 3, 4, 5>; int[] destination = new int[source.length]; for (int i = 0; i  source.length; i++)  destination[i] = source[i]; > 

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *