How can I dynamically name an array in Javascript?

I use jQuery and JSON to retrieve data from a database. Each row of the database represents a different product, and each product has a number of related properties.

What I'm trying to do in js is to create a named array for each product containing all the product properties. I know how to pull data from JSON. I know how to build an array.

I do not know how to create a dynamic array name. Can someone help me?

I am trying to name an array based on a field in a database. In the structure of my existing and working script, it is referred to as data.cssid. I would like to use the value of data.cssid as the name of the array, and then populate the array.

$.getJSON("products.php",function(data){
    $.each(data.products, function(i,data){
        var data.cssid = new Array();
        data.cssid[0] = data.productid;
        ...
        etc
    });
});

, , . "var data.cssid", data.cssid .

EDIT:

, ( eval). , , Object.

$(document).ready(function(){
$.getJSON("productscript.php",function(data){
    $.each(data.products, function(i,data){
        var arrayName = data.cssid;
        obj[arrayName] = new Array();
        obj[arrayName][0] = data.productid;
        obj[arrayName][1] = data.productname;
        obj[arrayName][2] = data.cssid;
        obj[arrayName][3] = data.benefits;
        alert(obj[arrayName]); //WORKS
        alert(obj.shoe); //WORKS WHEN arrayName = shoe, otherwise undefined
    });
});
});

obj [_] . , alert (obj.shoe), , arrayName = shoe. , .

, . , .

():

$(document).ready(function(){
$.getJSON("productscript.php",function(data){
    $.each(data.products, function(i,data){
        var arrayName = data.cssid;
        window[arrayName] = new Array();
        var arr = window[data.cssid];
        arr[0] = data.productid;
        arr[1] = data.productname;
        arr[2] = data.cssid;
        arr[3] = data.benefits;
        alert(window[arrayName]); //WORKS
        alert(arrayName); //WORKS
        alert(shoe); //WORKS

    });
});
});
function showAlert() {
    alert(shoe); //WORKS when activated by button click
}

.

+3
3

, data?

data[data.cssid] = new Array();

. window,

window[data.cssid] = new Array();

... , data.cssid "abc",

abc[0] = data.productid;
+7

. PHP ; Javascript .

-:

var obj = {};
var name = 'foo';
obj[name] = 1;

alert(obj.foo) // alerts "1"

, , . ? , , .

0

:

var obj = {};  //Or, new Object()
obj[data.cssid] = new Array();

, , ; newData ( - ), .

0
source

Source: https://habr.com/ru/post/1755563/


All Articles