Как мне объединить переменные javascript в объект

#javascript #jquery #json #ajax

#javascript #jquery #json #ajax

Вопрос:

Мне нужно объединить все переменные в одном объекте:

 $.get("https://www.virginmegastore.ae/en/gaming/playstation/playstation-games/sonic-forces---ps4/p/714792", function (data) {
    var productNamePost=$("[name='productNamePost']").val();
    var productCodePost=$("[name='productCodePost']").val();
    var bg = $('.pdp_image-carousel-image.js-zoomImage-mobile').css('background-image');
    var productPrice=$(".price__container > .price__value > .price__number").text();
    var url      = window.location.href;   

    console.log(url);
});
  

Извините, вопрос был неясен, мне это было нужно

 let obj = Object.assign({},var)
  

Мне также нужно запускать код при нажатии кнопки

  $.get("https://www.virginmegastore.ae/en/gaming/playstation/playstation-games/sonic-forces---ps4/p/714792", function (data) {    
 $("#addToCartForm > #addToCartButton").click(function(){ 
         var productNamePost=$("[name='productNamePost']").val();
         var productCodePost=$("[name='productCodePost']").val();
         var bg = $('.pdp_image-carousel-image.js-zoomImage-mobile').css('background-image');
         var productPrice=$(".price__container > .price__value > .price__number").text();
         var url      = window.location.href;   
        let obj = Object.assign({}, [productNamePost, productCodePost, bg, productPrice, url]);
        console.log(obj)});

});
  

но я получил ошибку ниже, когда нажал кнопку:

введите описание изображения здесь

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

1. var o = { productNamePost:$("[name='productNamePost']").val(), productCodePost:$("[name='productCodePost']").val() };

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

3. Вы не сообщили информацию об использовании, например, какие переменные должны быть объединены и, возможно, ожидаемый результат.

Ответ №1:

Попробуйте это:

 let obj = Object.assign({}, [
   productNamePost: $("[name='productNamePost']").val(), 
   productCodePost: $("[name='productCodePost']").val(), 
   bg: $('.pdp_image-carousel-image.js-zoomImage-mobile').css('background-image'), 
   productPrice: $(".price__container > .price__value > .price__number").text(), 
   url: window.location.href
]);
  

Это создаст массив объектов со всеми вашими переменными. Подробнее об этом читайте Object.assign() здесь

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

1. спасибо, дорогой @MeesEgberts, у меня есть еще один вопрос

2. Каков ваш другой вопрос? @Alaa

3. Я обновил вопрос, мне нужно вывести результаты после нажатия кнопки.@ MeesEgberts

4. Если у вас есть новый вопрос, вы должны задать новый вопрос, не «продолжайте» в этом вопросе

5. Вы должны поместить $.get("...") в click , а не click в $.get("...")

Ответ №2:

Вот так?

 var newObj = {
  "productNamePost": $("[name='productNamePost']").val(),
  "productCodePost": $("[name='productCodePost']").val(),
  "variable_name": variable_value
}