#javascript #vue.js
#javascript #vue.js
Вопрос:
создайте массив javascript и сохраните другой массив данных в созданный массив в Javascript. Я попробовал это следующим упомянутым способом.
Код:
var vvv=this.new_products.length-this.quote.lines.length;
let mmm={};
if(vvv > 0){
for(var i = 0; i <= vvv-1; i ){
mmm ={...this.new_products[this.quote.lines.length i]};
}
}
console.log(mmm);
пример:
this.new_products ->
0: {…}
1: {…}
2: {…}
3: {…}
this.quote.lines ->
0: {…}
1: {…}
Вывод должен быть ->
mmm->
0: {…} (this.new_products[2])
1: {…} (this.new_products[3])
Текущий вывод->
{product_code: "khdbdvdjlhc de", description: "sscs", note: "csccc", pinned: false, third_party: 0, …}
Мой пробный код не работает. Пожалуйста, помогите мне решить эту проблему.
Комментарии:
1. Непонятно, чего вы хотите. Приведите пример ввода и какой будет желаемый результат для этого ввода.
2. console.log(mmm); это не определено, mmm находится вне блока, в котором он был объявлен
3. @PedroLima Я обновил вопрос тем, что вы ожидали.
4. @lissettdm я обновил вопрос ожидаемым результатом.
5. Итак, mmm должно быть this.new_products[2] верно?
Ответ №1:
Я предположил, что вам нужны остатки элементов:
let m = [];
for(var i = 0; i <= vvv - 1; i ){
m.push({...this.new_products[this.quote.lines.length i]});
}
Комментарии:
1. Я отредактировал свой проверенный код с вашим ответом. Но сейчас я получаю новую ошибку. > Ошибка в обработчике v-on: «Ошибка типа: присвоение постоянной переменной».
2. Да, замените const mmm={}; для let mmm={};
3. Теперь это работает. Но теперь есть еще одна проблема. Проблема теперь всегда сохраняется внутри
mmm
последнего. Если есть 2 изменения, это добавляет только последнее изменение. не оба изменения. Как я могу это решить?4. Можете ли вы добавить пример с проблемой, с которой вы столкнулись?
5. @user_v12 Я обновил свой ответ, я предположил, что m — это тип массива
Ответ №2:
Вы можете создать мелкую копию, используя оператор ...
распространения следующим образом:
var array = ["thing1", "thing2"];
var array2 = [...array];
Если вам нужно сделать глубокую копию, одним из самых простых способов является использование функции cloneDeep() от Lodash, подобной этой:
import _ from 'lodash';
var array = ["thing1", "thing2"];
var array2 = _.cloneDeep(array);