首頁 > web前端 > js教程 > 如何使用字串路徑輕鬆存取嵌套的 JavaScript 物件和陣列?

如何使用字串路徑輕鬆存取嵌套的 JavaScript 物件和陣列?

Linda Hamilton
發布: 2024-12-23 11:56:08
原創
637 人瀏覽過

How to Easily Access Nested JavaScript Objects and Arrays Using String Paths?

透過字串路徑存取嵌套的JavaScript 物件和陣列

在JavaScript 中存取深度嵌套的物件和陣列可能是一體項繁瑣的任務。為了簡化這個過程,出現了利用字串路徑直接檢索特定值的解決方案。

純 JavaScript 解決方案

名為「Object.byString( )" 允許使用遵循點分隔路徑的字串擷取巢狀值。此解決方案的功能如下:

Object.byString = function(o, s) {
    s = s.replace(/\[(\w+)\]/g, '.'); // convert indexes to properties
    s = s.replace(/^\./, '');           // strip a leading dot
    var a = s.split('.');
    for (var i = 0, n = a.length; i < n; ++i) {
        var k = a[i];
        if (k in o) {
            o = o[k];
        } else {
            return;
        }
    }
    return o;
}
登入後複製

用法:

Object.byString(someObj, 'part3[0].name');
登入後複製

jQuery 解決方案

jQuery 提供了更簡單的語法來存取巢狀值:

$('someObj').data('part3[0].name');
登入後複製

範例用法

考慮以下物件:

var someObject = {
    'part1' : {
        'name': 'Part 1',
        'size': '20',
        'qty' : '50'
    },
    'part2' : {
        'name': 'Part 2',
        'size': '15',
        'qty' : '60'
    },
    'part3' : [
        {
            'name': 'Part 3A',
            'size': '10',
            'qty' : '20'
        }, {
            'name': 'Part 3B',
            'size': '5',
            'qty' : '20'
        }, {
            'name': 'Part 3C',
            'size': '7.5',
            'qty' : '20'
        }
    ]
};
登入後複製

使用提供的字串路徑,我們可以存取特定值,如下所示:

var part1name = Object.byString(someObject, 'part1.name');
var part2quantity = Object.byString(someObject, 'part2.qty');
var part3name1 = Object.byString(someObject, 'part3[0].name');
登入後複製

這些變數將現在保存嵌套物件中的對應值。

以上是如何使用字串路徑輕鬆存取嵌套的 JavaScript 物件和陣列?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板