簡體   English   中英

jQuery每個循環3維對象數組

[英]jQuery each loop 3-Dimensional Object Array

我有一個多維數組,我試圖循環。 我希望循環最終查看第一個對象(在示例代碼中: "pressure" ),然后對第一個對象內的每個對象執行特定操作。

但我甚至無法讓它正常工作。 我知道我的$.each函數是完全錯誤的 - 我只是無法弄清楚如何使它正確。 當然我在控制台里什么都沒得到。

 $(document).ready(function() { var units = { "pressure": [ { short: "atm", val: "1", long: "Atmosphere (standard)" }, { short: "bar", val: "1.01325027383089", long: "Bar" }, { short: "cmHg", val: "76.0000526890144", long: "Centimeter of Mercury (0℃)" }, { short: "cmH2O", val: "1033.25183423631", long: "Centimeter of Water (4℃)" }, { short: "ft-H2O", val: "33.899503811341", long: "Foot of Water (4℃)" }, { short: "GPa", val: "0.00010132502738", long: "Gigapascal" }, { short: "HPa", val: "1013.25027383088", long: "Hectopascal" }, { short: "inHg", val: "29.9212805862261", long: "Inch of Mercury (0℃)" }, { short: "inH2O", val: "406.793640435982", long: "Inch of Water (4℃)" }, { short: "kPa", val: "101.325027383089", long: "Kilopascal" }, { short: "MPa", val: "0.10132502738309", long: "MegaPascal" }, { short: "mbar", val: "1013.25027383088", long: "Millibar" }, { short: "mtorr", val: "760000.526890144", long: "Millitorr" }, { short: "mmHg", val: "760.000205385833", long: "Millimeter of Mercury (0℃)" }, { short: "mmH2O", val: "10332.5183423631", long: "Millimeter of Water (4℃)" }, { short: "Pa", val: "101325.027383088", long: "Pascal" }, { short: "psf", val: "2116.21372690676", long: "Pound-Force/Square-Foot" }, { short: "psi", val: "14.6959793215884", long: "Pound-Force/Square-Inch" }, { short: "Torr", val: "760.000526890144", long: "Torr" } ], "density": [ { short: "lb/in3", val: "1", long: "Pound / Inch-Cubed" }, { short: "lb/ft3", val: "1728.00001173627", long: "Pound / Foot-Cubed" }, { short: "slug/ft3", val: "53.707964051111", long: "Slug / Foot-Cubed" }, { short: "grain/ft3", val: "12094392.8271733", long: "Grain / Foot-Cubed" }, { short: "grain/in3", val: "6999.99988928036", long: "Grain / Inch-Cubed" }, { short: "g/cm3", val: "27.679904710267", long: "Gram / Centimeter-Cubed" }, { short: "g/cup", val: "6.548788655679", long: "Gram / Cup" }, { short: "g/L", val: "27679.9047102671", long: "Gram / Liter" }, { short: "kg/cm3", val: "0.02767990471", long: "Kilogram / Centimeter-Cubed" }, { short: "kg/L", val: "27.679904710267", long: "Kilogram / Liter" }, { short: "kg/m3", val: "27679.9047102671", long: "Kilogram / Meter-Cubed" } ] }; $.each(units, function(index, obj) { $.each(obj, function(short, val) { console.log(obj.index.short); console.log(obj.index.val); }); }); }); 
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 

你可能想做這樣的事情:

Object.keys(units).forEach((key, index) => { // loop over the units keys
    units[key].forEach(object => { // loop over the objects in arrays
        // do your stuff with the objects
    });
});
$.each(units, function(index, obj) {
console.log(index)
  $.each(obj, function(short, val ) {
    console.log(val.short);
    console.log(val.val);
  });
});

當你使用. 語法來引用對象屬性,您正試圖訪問該文字屬性。

例如, obj.index.short 這會查找名為index的屬性,然后查找名為short的屬性。 我假設您希望使用index 變量 ,以便您訪問正確的屬性。

像: obj[index].short 但這不起作用,因為你的obj[index]值是一個數組。

你想要做的是循環外部對象,然后遍歷每個屬性(這是一個數組)並獲取每個數組元素(對象)的值。

嘗試這個:

$.each(units, function(index, obj){
    // `index` is either "pressure" or "density"
    // `obj` is the value of that property (an array)
    $.each(obj, function(short, val){
        // `short` is the index in the array
        // `val` is each element in the array, it's an object
        console.log(val.short);
        console.log(val.val);
    });
});

 $(document).ready(function() { var units = { "pressure": [ { short: "atm", val: "1", long: "Atmosphere (standard)" }, { short: "bar", val: "1.01325027383089", long: "Bar" }, { short: "cmHg", val: "76.0000526890144", long: "Centimeter of Mercury (0&#8451;)" }, { short: "cmH2O", val: "1033.25183423631", long: "Centimeter of Water (4&#8451;)" }, { short: "ft-H2O", val: "33.899503811341", long: "Foot of Water (4&#8451;)" }, { short: "GPa", val: "0.00010132502738", long: "Gigapascal" }, { short: "HPa", val: "1013.25027383088", long: "Hectopascal" }, { short: "inHg", val: "29.9212805862261", long: "Inch of Mercury (0&#8451;)" }, { short: "inH2O", val: "406.793640435982", long: "Inch of Water (4&#8451;)" }, { short: "kPa", val: "101.325027383089", long: "Kilopascal" }, { short: "MPa", val: "0.10132502738309", long: "MegaPascal" }, { short: "mbar", val: "1013.25027383088", long: "Millibar" }, { short: "mtorr", val: "760000.526890144", long: "Millitorr" }, { short: "mmHg", val: "760.000205385833", long: "Millimeter of Mercury (0&#8451;)" }, { short: "mmH2O", val: "10332.5183423631", long: "Millimeter of Water (4&#8451;)" }, { short: "Pa", val: "101325.027383088", long: "Pascal" }, { short: "psf", val: "2116.21372690676", long: "Pound-Force/Square-Foot" }, { short: "psi", val: "14.6959793215884", long: "Pound-Force/Square-Inch" }, { short: "Torr", val: "760.000526890144", long: "Torr" } ], "density": [ { short: "lb/in3", val: "1", long: "Pound / Inch-Cubed" }, { short: "lb/ft3", val: "1728.00001173627", long: "Pound / Foot-Cubed" }, { short: "slug/ft3", val: "53.707964051111", long: "Slug / Foot-Cubed" }, { short: "grain/ft3", val: "12094392.8271733", long: "Grain / Foot-Cubed" }, { short: "grain/in3", val: "6999.99988928036", long: "Grain / Inch-Cubed" }, { short: "g/cm3", val: "27.679904710267", long: "Gram / Centimeter-Cubed" }, { short: "g/cup", val: "6.548788655679", long: "Gram / Cup" }, { short: "g/L", val: "27679.9047102671", long: "Gram / Liter" }, { short: "kg/cm3", val: "0.02767990471", long: "Kilogram / Centimeter-Cubed" }, { short: "kg/L", val: "27.679904710267", long: "Kilogram / Liter" }, { short: "kg/m3", val: "27679.9047102671", long: "Kilogram / Meter-Cubed" } ] }; $.each(units, function(i, obj) { console.log(i); $.each(obj, function(j, obj2) { console.log(obj2.short +' : '+obj2.val+' , '+obj2.long); }); }); }); 
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 

單位是一個對象,壓力是這個對象的關鍵

var _getPressure=units.pressure // will return value of key pressure
 _getPressure.forEach(function(item){ // use Array forEach to loop through array
 document.write('<pre>'+item.short+'--'+item.val+'</pre>')
 })

的jsfiddle

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM