Print Object Value for Object Key; not working



  • Hi all,
    Cant manage to get this working..
    Went trough @d-healey HISE scripting 101, it should work.... but does not

    My Viewport 2 displays: [Array][Array][Array]
    Why?

    Thanks!
    @Line43 is my problem

    HiseSnippet 2736.3oc6Zs0baabEFPxvwhUL0Iien8gNyNZxCTIJhWrkhcTcCkDki7TYaUQYGOiJqJD3RxUBDKFfkRhwilI+j5OA+SJu0GaO6tXAV.dU2731X5wivd6b91yd1yd9VfcCnN3vPZfg4b622GaXNuU89drNa1wl3Y77ZFl4rNJfdVHNXUiM56aGFhaZXZN6Oxa2bt6XH98q+vF1t1dN3jpLLdCk3f2gzkvRpc2p+Uhq6yrah2mzUq2Op5ycndaRco8.rLqUICeamSraieoMuayXYXd2sZRXzf5LaFNzv7NaPa1udG5Ydx9+FRH4HWLuPYi5ffjU+LpaSNh40ZrYGhaycUy4PCCSqcSr.yJs.Ov5Ejlj35SrD2Wz.JYD51CyYFG7JqCuRSO7L0f2cjv6Krp6DP7YIsvw1uy54dLbPKaXIPGVx9ZLy+9dVaRgd3wVtq8I3mE.EhGQgUKUZIzJkJs3Z4ygfe4yUrH5oC9Cc.ptcWeWbWaezlvDsMMffCQMFRmQEKlOGrlFxPmZGjLtcHgrC2b88KidJRAo1X1lzt9TOnPgEFrqKvA1XjUkoWVUDxRLAOkfOymFvPtPaHVGLhvvcCymaP.rbHFDVuPLulEVBwB5g4xYPwOpdlf9Sv8WOHvtOf4CZr1PZnRTKwqD98XnddMwAHGoMuut77fcHg7grvF0NbmdMOizdgk3O+19+L7P8ZGtuc2irkO91yOGdX6sOzoS.IbgFqg3FCjTUBkw5PBQmAaRQc.eSgYITLKk5Ab3X3lni5qgEwv4Pgdzw.Pd2EqEKzVzfBdHhmDkKFUK+26zdFT69b0F56RXgRcxBHdsgQxnHa4JTuPdM7FaSNE6gBw91A1vdNMIwQQnO.BukEBqvBGFsfmpKMC5dnB+PmC8OnTi0FRejybdLHYuJ2Hsr.f+SXvR3gb5fcNAQZIvWrng4jsa.1tYe.83lZijzp.IrFtEwC2r.X2NPGRMVT2Rw+MPOV1uWXmBow3hqwAjsuO1CV3nBnfOGLcb6F2DpITraHdR5f6TkVCMDZvAlQLLrr3gOStzXK2+.dvZx7h74laNjrBvO.U3Dti.nknImlGPwh7sKgH9dsjZUaHjy0SVTeEB1tGRcwK6CtIrzsoKVQvApmaeANktVkA.y2oinxUKawtQpmRl6xE4fnnhDFbqzIMJ90GbpsaObiutntpKVLSuO4.n+Mz6RZfKkVjrVTtm+BUPXT7CpHAu1uI2xyQsJ50XhWIBmAwfhsiGSIdEV3u6svhiK3U1gUIy3F1+.rUKnWWD+Lp0PaTaITc3+au8RHLyIeNhmK3niZ0yygQ.KM0aPLyCfGPcK3nhduDRXV.uk2oLA7HKS+gF7oSjT2z108HHihBiQyp4lZtD16nuUNeD0sQsuGICutDBBstjJ.P8z0qpd6s+dU2.SvZSkMnxjsAEKNoksP+TqWWRyVko1rUQyroModIkgekWgEy8tbyk6hbnrM0p0PaKRXt3fg1LOawfwMvBd85dDNPYuTcDRaJcdYViNuL8zFcjVKsNR8dtGg8JH15nxVyHxDC4scmHTAckIxZKeTVa6XeD10f.4lcWql3PGCAbMLehUT3AXqCryY6s0CL+WzdNkGH3XI053U07VI4poT3WaIxAaB+3KyCpguLRC3luIJHjPMOvZvsVJ0kvJ3ZHsJYk1u9CFu940rY1fIeFsTkyMRtLar2q9o5as2C0RRlubKYyLuU4kKE8yHlPy7VkRpUmSSdqUeTRKo40j2ph1nlD2lM5AtRuAGDBtzfKp0pqTB9ysFaENDLMuwYaHX1Dw23qleZ4aLUbM3d.WZVFSGofD9.q65ROK0Yq7jnFK4fQks+fXJ.PivajiknpTHIHC+FY9VuHdVD0qjQF0TgXnuK0umqJy.HWqt1LdV5BrC4bIyTSjmitdh6X7bJTR8H9bv8vcomFmLdq.Z2DvIRoWWbNcrCB2mFMlwQHItx5pJAFI7GRRuVjvHAjRo0PDzeNsMYYfMRaVGnku4azxTVKgRAwH7YpL20G7AjFqomXkPSGK0zwflRMMh0zwiRSIZI5okCv9tbu7TB5fiarDZgEzyD7hjGGxJgL+wHYNjgMp7AGpGpJ2fgomrI2AhcGpcyDi1DScYxYsn7fcAAG6BWH8xhJG34l57UlpTUxjbm5e+14ZNtBg0tgtyi72bWgwXhXjbCFe51K9zsWbqb6EWCt2Yl2WNF3Yw+mHh+Ih3WZh3BDyOTM+vIiOh10IjOhtDQJe7BHCwb8NCTFFGIZyIyr8yrZQgiUT7BApTJBgll0A5Vb9a2Olzmhq3fzb.xRzl7LnSyfhSKLpANyrzTc3zY7BIr9YHNNDlUSqF+BqcILmNiPkkSqxRSsJinJl2ZqVsvNrD8cGqm81IyKTWT+o8Ub1YPXztPn4nT6DxaNKUoa.50etUkUV8pwud2.rHSSxOCc82a83xOohll6AVg.UaOpzSVMi9WuK3SMH.hlZ6g8gyOfkHA1eXR66s2OFP64qFcpYqXYc+.XCLXwxz1q7v06PYYrDaFPCCaAyWgPCyz5t8BZialox8vmhCBGn5W1qKrh64AmYJ8hdcHleaXDmWXCoobdltKzWo8sEWJFrgRTtblxUxT9gYJ+nLkWIS4UyT96RJGSOf6P8kVwEQNT+9nUGVLCy6dqduHe3iWj5lXlSox5DtoXKuSAmanFo8ARBytmKSUa4LJ8ETOpeGpGwY.mEXsucaXqZZzLJTtNiAdu7JWQWHtX6Pw1wxZxdG33U6.0VjKwTcbV2+fkDBHd..zGOQkK8QPT4wg9OOZKDB1yGvt8sVyaI1Qi3wpuFZaOZOdh+pPTVPTL4A55wxpXDUpTzsOBTGJwMfeaYUKkitYenkxQsX3nDAn4nmk4LLKPSDhCEcZqKDO0MyZZHb3AGO7LMtMgXWam.5gNxDf3.8dhZfd5Itz34rdAuLJ9B1s3nznKDZ6PGmTRYfwT4JLlGdEFyitBiYkqvXV8JLlu6JLlGO1wvOUY8dLZWYHBnhc2JJSzsR7pJEmfK3s6iCX7WIioYM7oPhGxcUyAwzCOgQ8EuFoHBBfCvDdQRmG+ZQptW09wE9kZUOizj0IthRWTsClzti1Gk0SqxvmytNuDJaWRautBbdWKWbKFeZNYnm5ESkLALdi1Dv3wYl.99CLAVNZBbIdoVSEhuLunKM3uiF7e+eKC7M9GYg+uXWM5ty.WKSSnFACRwqqpVt50xs81o.2bW92aVB39msFG3d+QSFbLJ0kQ741Mgri.6ez5.wWKPibY96MQ9Slypc1Qxa+6V4it6lHs.yYFBd4ujxaY7Ns4TbK88Jd8XJdk+nR8m5OpzTDCUc68U0oDpp8eUMEYvDcMDdfpFuW0Lj.SlJYX.lzPL8uj43.b+RZRQ7KolDVeI0khxmbW6.j9R58GUL9tODyq3F0NbC9qoJnXoA9.N9ro6C3.D2t1fAPqmaPZGqJYM5dywFcAvz9vhMt03a9AXW3sa71YmN3ZbKQv0bVc5s5aIh41lf8gNgTrZU07fpwTZUU8UU0oydkrEkmdaw0jA7+ycN4r+l+bxqD28OFWmGAw+OnPcJnjaYNC+H1XR4V7SGUzxsL+OvuDd4xyNiXlKabZt8.yYht6fDW5K4EGbsQ4mt.g+e7BDLm03+RC4tMm```
    
    


  • I get this in the Console

    Interface: BD
    Interface: Ludwig
    Interface: SD
    Interface: Tamba
    Interface: HH
    Interface: chris
    

    What are you expecting to see?



  • @d-healey said in Print Object Value for Object Key; not working:

    u expecting to see

    Yes same here.
    Im expecting to get:
    BD
    item1 = Ludwig
    item2 = Xyz

    SD
    item1 = Tamba
    item2 = SD_xxx

    HH
    item1 = chris

    But its only printing the first variable of each category..



  • Use Console.print(trace(obj)); to see the contents of the object.

    For global objects you can also right click in the script watch table to see the contents.

    d7080a1f-0e3f-4c4b-bbe8-2d61e308e128-image.png



  • @d-healey said in Print Object Value for Object Key; not working:

    Use Console.print(trace(obj)); to see the contents of the object.

    For global objects you can also right click in the script watch table to see the contents.

    d7080a1f-0e3f-4c4b-bbe8-2d61e308e128-image.png

    I did.
    So if at line 2 (in your example)= BD
    how do i specify the index? Ive tried [0], [1] [2] [3] . It doesnt work..



  • The index of BD?



  • @d-healey said in Print Object Value for Object Key; not working:

    The index of BD?

    Looking at the Script Watch Table its line 2. But i think im not understanding something. It should be and is @index = 0??



  • @ten7kur Obj is an object not an array. So obj doesn't have indexes like [0],[1],[2], etc. BD is an array though so BD[0] = "Ludwig".



  • This post is deleted!


  • I understand that "Obj" is a object. I thought an object holds arrays....



  • How can i access the arrays?



  • @ten7kur It does, "BD" is a key and its value is an array.



  • @ten7kur said in Print Object Value for Object Key; not working:

    How can i access the arrays?

    obj.BD or obj.SD, etc.



  • @d-healey said in Print Object Value for Object Key; not working:

    @ten7kur said in Print Object Value for Object Key; not working:

    How can i access the arrays?

    obj.BD or obj.SD, etc.

    keyArray2.push(obj[BD]);? ..ooops typo. I meant :

    keyArray2.push(obj[k][BD]);
    

    I cant get the keyArray2 to populate correct, its displaying the fist value from each category.. as before

    const var SamplemapList_CAT1 = Content.getComponent("SamplemapList_CAT1");
    const var SamplemapList_CAT2 = Content.getComponent("SamplemapList_CAT2");
    
    // viewport list the items
    SamplemapList_CAT1.set("useList", true);
    SamplemapList_CAT2.set("useList", true);
    const var keyArray = [];
    const var keyArray2 = [];
    const var keyArray3 = [];
        
    // put under category
    const var names = ["BD_Ludwig","BD_Xyz","SD_Tamba","SD_Xxx","HH_chris"]; 
    
         
    
    // this will hold the samplenames sorted by category
         var obj = {};
    
         for(n in names)
             {
             // This splits the string into a list using the given separator
             var sp = n.split("_");
    
             var drm_category = sp[0];
             var drm_sampleName = sp[1];
    
             // We can check if the category is already used
             if(isDefined(obj[drm_category]))
                 obj[drm_category].push(drm_sampleName); // append to the existing list
             else
                 obj[drm_category] = [drm_sampleName]; // create a new list at the key
             }
    		 
        for (k in obj)
        {
            //Lists CAT1
            keyArray.push(k);
             Console.print(k);
            
             //List CAT
            keyArray2.push(obj[k][BD]);
            keyArray3.push(obj[k][SD]);
            //keyArray2.push(k[obj]);
            Console.print(obj[k][BD]);
        }
        
     
        
        
    // Update the viewports
    SamplemapList_CAT1.set("items", keyArray.join("\n"));
    SamplemapList_CAT2.set("items", keyArray2.join("\n"));
    


  • @ten7kur
    Even in something simple like this code below , i cant get "a" to show all its contents; all it prints is "a" and its first value "10" + undefined parameter 0

    const var o = {a:[10,11,12], b:14, c:15, d:16}
    
        for (k in o)
        {    
            Console.print(o[k][a]);
        }
    

    If i do:

    const var o = {a:[10,11,12], b:14, c:15, d:16}
    
        for (k in o)
        {    
            Console.print(o[k]);
        }
    

    Then i get a print out of "[Array] 14 15 16"
    What am i not understanding?
    Thanks



  • @ten7kur

    so in your simple example:

    You have an object called o

    it has 4 attributes named a,b,c and d

    you need to reference these attributes in the object

    Console.print(o.a);
    

    will print "Array"

    Console.print(o.a[0]);
    

    will print 10

    Console.print(o.b);
    

    will print 14

    so if you want to iterate through the attributes of o

    const var o = {a:[10,11,12], b:[14,22,77], c:[1,9,6,-415], d:[16,22,11,56]}
    
    
        for (k in o)
        {    
            // k will first hold a, then b then c then d
            var key = o[k];
            Console.print(key[0]);
        }
    

    so this will print:
    10
    14
    1
    16

    so with some better name vars

    const var o = {a:[10,11,12], b:[14,22,77], c:[1,9,6,-415], d:[16,22,11,56]}
    
    for (key in o)
    {    
        // key will first hold a, then b then c then d
        var attrib = o[key];
        for (val in attrib)
        {
            Console.print(val);
        };
    };
    


  • @Lindon said in Print Object Value for Object Key; not working:

    const var o = {a:[10,11,12], b:[14,22,77], c:[1,9,6,-415], d:[16,22,11,56]}
    
    for (key in o)
    {    
        // key will first hold a, then b then c then d
        var attrib = o[key];
        for (val in attrib)
        {
            Console.print(val);
        };
    };
    

    Aha, i see.
    Console is printing all the values!Great! But going back to my first example, i cant manage to display it in a viewport.
    The array "attrib" only shows 1 value "chris"... Why? yet Console prints all??

    HiseSnippet 2724.3oc6Z0sbaabEFPxvNjUL0Iiun2zY1gStfpQQhj1RwNrtkRhxQdprspnrimQkUEDbI4JAhEyhkRhwimIOR8QvOH8gnuAsmcweK.+UThdbaL0EBX+4b91yd1y47AfCYTKrmGkoom43AtXM8ULpOvg2c2tlDGsmWSSOqQSF8ROLaKscF3Z54gaooqu7OJ5WOyczj+92+4cLsMcrvwMoo8FJwBe.oGgG25gU+KDa6mY1BeLomxneT0maQc1kZS6CXYYihZtlVma1A+RSwvVxPS+t60hvor5bSN1SS+N6PaMndW5kN9i+MDORSar3lRZ0AA427yn1sDHVzp1tcI1sNLbM6oooabXrEXYeKvCLdAoEIp8XKw8kcfhmgp8PeoIAuRpvq3rCOcE3cGe38UF0sXDWdbOBr8aLdtCGyZaBaApvxerZK8utqwtTXDN706YdN9YL3lnYTXqhEWCsYwhqVIWVD7KW1M1.8zg+gNAU2rmqMtmoKZWXg1gxHXOTiQLXzFajKKrm5wQWXxhm2ADO9o6t8wkPOEEBoNX9tzdtTG3lB4Gdn4E.aBxp7rKqxRYIWfWPvW5RYbjMzGh2EiHbbOubYGF.q6gAg02CKZI+ZHNqOVHmgE+3FYL5OGOXaFyb.f4SZTQfj39tvztje6A6CRf51mi56zByPV917ApxyANg3IlT9cpc5A8acIoS90DW+1A+LbQ8ZmdrYull9W91qtBtX+8O0pKi3kuQEoNh1y4cIdnKgSnntfiozl3IWh9JA7133VnlCT.hXtRbPadFfh289JgRD0lxPEbPDGeLtZPyheuS4ZPuGKzqmqMg64qTNi3zAlImhL82e56IZQzYGxEXGjG10jYBm3Tjj.Fdt.JbVWJrB4OMX6NwPZw5cZ3B.Frm6IEaTYDiweoKh.4OpRMRJK.3+DFLENHqtXqyQj1R7EIZXMYZyvlsF.nG2RYlj1EHd0vsIN3VE.C2IpPpwppVJwugFw5t885VHIFWsh.PlttXGXmiJgB9JvzIraBSnhPw1d3ooCgKURMzPpAKXEwwv1hC9R+sFS+SOfishLeetrYxfTZv+RoOw4BeBPgAqyjNChCNdHwoNklCOz3uvOe0JIlBb12iZiW2E7Z3I6cHQKjb4Ta1lbveqIrfEFgyS3KHwKbrTfX+gkvMFkzJpbFF9WkjclDkhgsZkD1qrA+OF2xCku1skvfKLwggrlPPJYLLHvSjE6LJwoP9+lS9UmTDqvoch.WMRMI++Z22whSnvNmyKob7qbJrZ12kMS12mEktq1sGYehXzLpsMlMxtEkDvlzDK3zuWSLaMgwEBqFNPH2XxjuFiO4qZsAV9oLTFH044ND9qfiPiKkrVPdFH47cBPELTtL0btfTyGX1DaqQfDv20nE1yRSBWM8mXDrWuSs0pWas82W063OobseT70PPD70PXtkuVmrpVwHNgbnB+CFxDsS4mvIXXM70AZ.25MANcR07.igc7BUmgtrVt4WRkCkTbckZu940L4lf4dIkZgxN1hU24nW8S026nGpTEjXq1ub0ULJsdwfeZQUrthQw3VUKZMmwVOJtmjEtlynrxrlVwq6zGbidCl4AtyfcxXqMKB+agUNp.B5525kSJKcMnfxuYkYsfxYpXRYj4qaYjyVUewE7sssM8xDwQE4ImX0eiqbtgwDCPizaTfkflBQBKUAr9oTeQzpHXTwyLnqBQP+Ppae6vr.PNodPtHnRLI1EYljIiMEw6U0Sz.iVSdgUcFH2iv8nWDUuUaFsWL3jUsoJNqtlLuioAyYRUbF0X8vFgRNEWDWAkLwJAjRwJHB5OlzlrNTwYGdWnmu8aUx2pTnfrxW7kgEmoN4SHMpnlDUpoy70zYflRrLhzzYiSSwZI3p0YXWagWdBAcxYMVCkOuZsGuO9xQrS3WJSfLGwzFWt+Q5gFl9dT5IctbPrGPMaEazxkk3XCkhplwMgNBS+ZEdDKLCbtrAFpPOXaPvQtvERtsHmRiUqjIWVAIgY5nqX0En8cMssaBwUKLZvEWmh+e+5gG6bDV6VhTqhU9lxQcBQLhnnhVDLT+LA0OSP8lvyJ059Zx1JE9GIuqj+A.sFqeOjn7sJBlDHfJAZ+8kDElZjb4BX5gym4HzAg0lgvzpZd0JIWKd8a9c9qGYa6T6GRRAJvWtdx1Cad+8+gvgAlfJyjMn7zsAarwz187bSrecMMakmYyVYEy1HHgKQrHoZtQSDeL8qRFeLCIfP9jEPJR4pCFnLLIBz5SmU68LZSgzJg7BApTgDB00qCzsD72teDouPthCSyAHKQaIpfNICJAsvfNDLyRR0QPmwwivGjh33HXVMqZ7qLNjvs5NFUVJoJKNypLfpXNi8Z2Fawi02cLd1amNuPUQ86ONjyNGBi1CBMGTZmTdYLBu6Vfd8WZTdyslO90GxvxJMI+LLzeqwiK8jxJZtOXEXg88nhOYqT5e6dfO0v.HXocD1Exe.aQRr+v39O5nejQ66FN6DqV415wL3.LXwR02qbv06R4orD6xnddsg0qTndo58v9rN3VoZ7H7EXl2PM+x98fcbGGHmouWzq8vhmDFw5ElPYJWkZ3R8U7XS4CDCNPIuuTp6Km59Gl59Gk59MSc+Vot+6iuOhdfvg5qMhtEYQcGf1ZTwLzu6B84h7wOdQhmDSlPUVmHLE64bA3bCs3aefhvL6ayCasTJk9BpC0sK0gXMjyBr22oCbTMIZFGJ2lyAuWQiapJDarom73XIEYe.jd0jEdD4ZrTmj082Y3CAjH..5SmnxE+DHp7jP+WFbDBAm4Y7Eu0ZEC4IZjHV8MPaGQ6KJ7OLDkADEyOgtZrrxZA2UL3oOBTGJJLfeWovdJE7T8gdJEzilUnH.MGbseMCKCzDg3PAYasg3o1o1S8fjGB7HpzXQBwdlVL5oV9E.I.5WHaAFoi7gFmw3Eh6QwObcAJ05Ag1N0xJgTFZNkmi47v4XNOZNlylywb1ZNly2OGy4wSbNhrJa2mS64Gh.Z3v8BpDcuXuphQE3Bd6tXFW75Xz0qgu.J7v+TUFHlt24bpq7UHEPP.b.lxKQ5pnWKR0ipNH5leoV0KIs3ciZn36q1ES5zU4qt4oU43q32jW.koMoiSOINuqgMtMWrLmNzS7RohW.ZuQYAn83TK.W2gV.qGr.tFuPqYBwWmWxkB7OPA9e3ulB9Z+8zv+WLqF7ryDuiLwKISxfT95ppksdsr6ueBvk45+dyhA2+n8j.2GZNcvwoTaNwUX2jxN.r2yP9MibaTsj9xJYJheWeKjugpaih.zWZD3U7JIWv3cVqfXA84mcy3EN2eifty72HXBZfgC6CUUI.F15+rZBpew5ZDr9B67KplhxW7RIEeu3NhH6EuFGhoWbWgz7haIliWbaIH34eFcHJdwi9SJ9c2GhvswN0NcGwKkhsQwg9TMt2r8oZ.h6PSv.nLxcHchTkeKpdyQFcIvT9NQ0VXrK+HbJbwFuc4YCtZKH5r5KqRlU8HQDS1XrOxETHG1vVdP0HBrgM8MUUIuNW1hRyts3Fx28+4xSt7u5ySNWL0+TbedLz7+nB0Yf.tg9RhTrQTv8+FzBHgan+efewrv8ycFvC2uyY4YEnuTvSJH1k9Z9XBtwn7yOtf+e7wEnur1+EfLcwgy
    
    Content.makeFrontInterface(600, 500);
        
    // =================== [ Samplemap Categories ] ================== //
    const var SamplemapList_CAT1 = Content.getComponent("SamplemapList_CAT1");
    const var SamplemapList_CAT2 = Content.getComponent("SamplemapList_CAT2");
    
    // viewport list the items
    SamplemapList_CAT1.set("useList", true);
    SamplemapList_CAT2.set("useList", true);
    const var keyArray = [];
    //const var val1 = [];
        
    
    // put under category
    const var names = ["BD_Ludwig","BD_Xyz","SD_Tamba","SD_Xxx","HH_chris"]; 
    
        
    // this will hold the samplenames sorted by category
         var obj = {};
    
         for (n in names)
             {
             // This splits the string into a list using the given separator
             var sp = n.split("_");
    
             var drm_category = sp[0];
             var drm_sampleName = sp[1];
    
             // We can check if the category is already used
             if(isDefined(obj[drm_category]))
                 obj[drm_category].push(drm_sampleName); // append to the existing list
             else
                 obj[drm_category] = [drm_sampleName]; // create a new list at the key
             }
    		 
             
        for (k in obj)
        {
             //Lists CAT1
             keyArray.push(k);
             //Console.print(k);
            
             //List CAT2
             var attrib = obj[k];
             for (val in attrib)
             { 
                var val1 = val;
                Console.print(val1);
             }
    
        }
        
        
    // Update the viewports
    SamplemapList_CAT1.set("items", keyArray.join("\n"));
    SamplemapList_CAT2.set("items", [val1].join("\n"));
    
    


  • @ten7kur said in Print Object Value for Object Key; not working:

    Aha, i see.
    Console is printing all the values!Great!

    No. its not, I think you maybe still not quite there...your code:

    const var o = {a:[10,11,12], b:14, c:15, d:16}
    
        for (k in o)
        {    
            Console.print(o[k][a]);
        }
    

    So Console is being asked to print something about o...

    o[k][a]

    -- so break this down:

    o - the object
    k - an attribute of o
    a - huh?

    as you move through your loop K contains the attribute - so first time through
    o = your object
    k = the first attribute of your object (which first time thru is an attribute called "a")
    a = well who knows what this equals but it really should be pointing at an index - its important to realise that even though you've named your attribute "a" in your object theres no way for the code to get at "an attribute called a" unless you explicitly call it - maybe like this:

    Console.print(o.a)

    in the loop you are running the code has no idea that theres something called "a" in your object

    So as you say "all it prints is "a" and its first value "10" + undefined parameter 0"

    so Console.print essentially does this:

    print o[k] -- so it prints "a"
    print o[k][a] -- er there is no attribute called "a" on the output of o[k] so its undefined...so prints undefined...

    All of your problems are (as far as I can see) based on not understanding arrays and objects in javascript - stop, slow down, go do an online javascript course (they're free) and you will be much better off...





  • @Lindon said in Print Object Value for Object Key; not working:

    @ten7kur said in Print Object Value for Object Key; not working:

    Aha, i see.
    Console is printing all the values!Great!

    No. its not, I think you maybe still not quite there...your code:

    const var o = {a:[10,11,12], b:14, c:15, d:16}
    
        for (k in o)
        {    
            Console.print(o[k][a]);
        }
    

    So Console is being asked to print something about o...

    o[k][a]

    -- so break this down:

    o - the object
    k - an attribute of o
    a - huh?

    as you move through your loop K contains the attribute - so first time through
    o = your object
    k = the first attribute of your object (which first time thru is an attribute called "a")
    a = well who knows what this equals but it really should be pointing at an index - its important to realise that even though you've named your attribute "a" in your object theres no way for the code to get at "an attribute called a" unless you explicitly call it - maybe like this:

    Console.print(o.a)

    in the loop you are running the code has no idea that theres something called "a" in your object

    So as you say "all it prints is "a" and its first value "10" + undefined parameter 0"

    so Console.print essentially does this:

    print o[k] -- so it prints "a"
    print o[k][a] -- er there is no attribute called "a" on the output of o[k] so its undefined...so prints undefined...

    All of your problems are (as far as I can see) based on not understanding arrays and objects in javascript - stop, slow down, go do an online javascript course (they're free) and you will be much better off...

    HiseSnippet 2721.3oc6Z0sbaabEFPxvNjUL0Iiun2zY1gStfpQQhj1RwNrtghhxQdprspnrimQgQEDbI4JAhEC1kRhwimIOR8QvOJ8QHuAsmcweK.+URldbaL0EBX+4b91yd1y47AfC7nVXFi5oom4ngtXM8ULZLzg2amdlDGsmVWSOqQKO5ELr2VZ0F5ZxX31Z55K+Ch90ybKM4ue66qYZa5XgiaRS6UThEdeReBOt0Cp92I11OwrM9HRekQ+fpO0h5rC0lN.vxxFE0bMsNyrK94lhgsjgl9s2sMgS8ZvM4Xll9spQaOrQO5EN9i+UDFokMVbSIsFff7a9IT61BDKZUamdD61GDtlYZZ5FGDaAV12BbOimQZShZO1RbWYGn3YnZOzWZZvqjJ7JN+vSWAd2xGdegQCKOhKOtGA19CFO0gi85XBaApvxerZK8uuswNTXDN706adF9IdvMQynvVEKtFZyhEWsRtrH3WtrarA5wi9CcLpgYeWabeSWzNvBsK0ifYnliYvnM1HWVXOkwQma5EOu8IL9I6r8QkPOFEBotX9Nz9tTG3lB4Gcn4E.aJxp77KqxRYIWfmSvW3R83HanODuGFQ339rbYGE.qyvfvFvvhVxuFh6M.KjynheRiLF8mgGtsmm4P.yG2rh.Iw8ctocI+1C1Gj.0c.GMvoM1CY4ayGpJOG3DBSLo70pex9CZeAoa90DW+5g+BbQi5mbjY+Vl9W95KuDtXu8NwpmGgkuYEoNh1y48HLzEvITTOvwTZSXxknuR.uMNtMp0PEfHlqDGzVmBn3MusRnDQcndnBNHhiOFWMnYwu2nbMn2iD5k4ZS3Lekx8HNcgYxoHS+8mALQKhN6RNG6fXXWSOS3DmhjDvf4BnvYcovJj+jfs6DCosW+SBW.vfYtGWrYkwLF+ktHBj+nJ0Lor.f+iXvT3fr5gsNCQ5HwWjng0josG1r8P.831Jyjzo.gUG2g3faW.LbGqBolqpZoD+FYDq6Nf0qPRLtZEAfLccwNvNGUBE7kfoSX2DlPEghsY3YoCgKURMzTpAKXEwwv1hC9B+sFS+SOfishLeatrYxfTZv+RoOwYBeBPgAqyjNChCNLj3TmRygGZ7W3msZkDSAN6yn130cAuFdxdGQzBIWN0lsIG72ZAKXgQ3rD9BR7BGKEH1eXIbiQIshJmgg+UIYmIQoXXqVIg8Jav+iws7P4KcaKL3BSbXHqoDjRFCCB7DYwNkRbJj+mbxu5zhXENsiE3pYpIE+WmANVbBE18bdNkiegSgUy9lrYx91rnzc0oyX6SDm1iZai8Fa2hxB7l1DK3LneKr2ZBCLDZMbfP9wjIfMlbBX05Cr7SanLPpyScH7W.GilTZYsfbMPB5aEfJXnbY54bAom22rE1Vi.IgusQaLyRSBWM8GYDreWq9ZMpu1d6o5g72Tt1OR9ZHHJ9ZHL2xWqSWUqXDmTNTg+ECYx1Y7S3HLpF9x.Mfa+p.GOoZtmwnNegpKt7uafzJmVZ+12q8xmV2jaBl7kTpIJ6DKZs1gu3Gar6g2WoZHw1seYqqXTZ8hA+zhpbcEihwspV7ZNisdPbOIKfMmQYkYMqhXqM.bkdE1iAtzfKpwVaVD92BqrTADz0euWVorD1fBK+pUl2BKmqhJkQnupkSNeU+EW32111zKRDOUjubpUANox5FESd.ZjdiBrDzTHR7RUHqep0mEsJBFU7LC5pPDzOf5NvNLa.japOjSBpHShcQFJYRYSQbeU8DMvn0DKr5y.4dHtO87n5t53Q6GCNY0aphypmoG6HZvblVkmQM1HrQnzSwEwURISvR.oTrBhf9qIsIqCUd1k2C54q+Zk7tJELHq.FeQXQZpS9XRyJpISkZ5TeMcJnoDKiHMc5jzTrVBtZcOrqsvKOgfN9zlqgxmWsFj2Fe4X1I7KoIPliYZSpFfw5gFlFeb5IcNcPr6SMaGazxkk3XCkjpl0MgNBSAaEdDKLKbtrAFpPOXaPvQtvERtsHmRyUqjIWVAYg45nqX0En8cLssaAwUKLdvkrdkeOwm8ZDV68D4VEq7Mkq5ThXDQUEsHXp9Ihpehn5MguUp08Uj0UJ7OQ9Ww+A.st2f9HQ4aUDrIP.cBzd6IIKLyH4xEvrCmO2QnCBqMGgoU07pURtVXCZ8M9qGYa0p+cIoAE3K2HY6gMu2deW3v.SPk4xFTd11fM1XV6dL2D6WWQyV441rUVwrMFh3RDKRpla7jwmP+pDxmvPBHkOcAjhXt5fAJCSiDs9rY1dGiNTHsRHuPfJUHgPc8F.cKA+s6FQ5Kjq3nzb.xRz1hJnSxfRPKLnCAyrjTcDzYbXD9vTDGGCyp4UiegwADtUuInxRIUYw4VkATEyYramNXKdr9tkwSd8r4EpJp+7Qgb14PXz9Pn4fR6jxKiQ3cuGnW+4Fk2bqqG+5C7vxJMI+BLz+nwCK8nxJZd.XE7B66AEezVoz+18AepQAPvR6PrKj+.1hjX+9w8e3g+fGcfa3rSrZkaqG4AGfAKVp9dgCtQOJOkkXGOJi0AVuRgxR06AC75hampwCwmi8Xiz7yGzG1wcbfbl9dQujgEOMLh0yLgxTtL0vk5q3QlxGJFbfRdeoT2WN082O08OH08al59sRc+2FeeD8.gC0WZDcKxh5NDs03hYne6E5yE4Ce7hDOIlLgprAQXJ104bv4FZw29.EgYNvlG1ZoTJ8YTGpaOpCwZDmEXuuaW3nZRzLITtMmCduhF2TUH1XSl73XIEYuOjd0zK7HxUXoNMq6exvGBHQ..zGOQkK9QPT4og9OO3HDBNy6wW7VqULjmnQhX02.scHcfnv+vPTFPTL+D5pwxJqEbWwfm9HPcnnv.9MkB6oTvS1G5oTPOZVgh.zbv090LrLPSDhCEjs0FhmZmZOkAIOD3QTowhDh8Ms7nmX4W.j.nelrEXjNxGZbFimItGE8.1MDnTqODZ6DKqDRYj4T9ZLm6eMlyCtFyYyqwb15ZLmu8ZLmGN04Hxpr8.NsueHBngC1MnRzci8pJFUfK3s6h83hWIitdc74PgG9mpx.wzYmwotxWiT.AAvAXFuHoKidsHUOr5vna905Uufzl2KpghusZOLoaOku9lGWkiujeSdITl1jtN8k371F13Nbwxb1POwKlJdAn8JkEf1CSs.bcGYArdvB3J7RslKDeUdQWJveeE3+t+QJ3q8yog+uZVM3YmAtV55PKRFjxWWU8rMpmcu8R.tLW82aVL39mclF3dWqYCNNkZyItB6lT1Af8NFxucj2GUKourRlh3202B4ao58QQ.5KMF7JdkjKX7NuUPrf9LztY7Bu1eqfty82JXBZfgC6cUUI.F15+pZBpew5ZLr9B67yplhxW7RIEeu3NhH6EuFGgoWbWgz7haIliWbaIH34eFcDJdwi9iJ9c2EhvsQs5mTS7Ro71n3HetF2Y99bM.wcfIX.TFYMR2HU42hp2bjQWBLkuWTsEF6xO.mBWrwaWd9fq1BhNq9xpjYUORDwjMF6icAExgMrk6UMh.aXSeUUUxqWKaQo42VbC469+b4IW9284IuVL0+XbedBz7+fB04f.tg9RhTrQTvMDYGCIgan+efewrv8ycFvC2uy44YEnuTvSJH1k9J9XBtwn7SOtf+e7wEnur1+0jvzwA
    

    It is printing all values. Checkout my snippet.
    Console.print(val1); prints everything! yet but var attrib only has 1 item, "chris". Thats what i dont understand...

    Ok, will do more reading...
    I got other work to do, so doing this when i can
    Thanks!


Log in to reply
 

14
Online

648
Users

2.6k
Topics

21.5k
Posts