Как создать объект массива по двум измерениям l oop в java скрипте - PullRequest
0 голосов
/ 24 апреля 2020

У меня есть входы и два выбора, созданных нажатием кнопки с идентификатором приращения, таким как id = "commodity0", id = "commodity1", id = "commodity2"

Я хочу отправить все данные в одном массиве, содержит часть идентификатора (например, «товар») ввода как подосновного массива, и этот массив содержит вложенный массив внутри него номер входного идентификатора отдыха

общая концепция, как показано ниже

data = [
     commodity = [
         "0" : " value "
         "1" : " value "
         "2" : " value "
     ],
     price = [
         "0" : " value "
         "1" : " value "
         "2" : " value "
     ],
]

my код я хочу выполнить это

var arr = ['commodity','price','packages_count','packages_type','gross_weight','net_weight','gunit','nunit'];
var data = [];
for (var n in arr){
    model.find('input[id*='+ arr[n] +'] , select[id*='+ arr[n] +']').each(function () {

        var key = $(this).attr('id').match(/[0-9]+/)[0];
        var val = $(this).val();

       **--thanks for complete code from here** 

    });
}

Спасибо за вашу помощь.

1 Ответ

0 голосов
/ 24 апреля 2020

Прежде всего, указанный вами массив (как ожидание) не является допустимым JavaScript массивом. В любом случае попробуйте что-то вроде этого, может быть, это то, что вы хотите:

    var arr = ['commodity','price','packages_count','packages_type','gross_weight','net_weight','gunit','nunit'];
    var data = [];
    for (var n in arr){
        var temp = [];
        model.find('input[id*='+ arr[n] +'] , select[id*='+ arr[n] +']').each(function (){

            var key = $(this).attr('id').match(/[0-9]+/)[0];
            var val = $(this).val();
            temp.push({[key]:val});


        });
        data[n] = temp;
    }
...