只是一種可能的方式速寫:
您的數據:
var data = [
{foo: 1, bar: 2, foobar: [
'a', 'b', 'c'
]},
{foo: 1, bar: 2, foobar: [
'd', 'e', 'f'
]},
{foo: 1, bar: 2, foobar: [
'g', 'h', 'i'
]}
];
var accessor = '1.foobar.2';
使用輔助函數:
function helper(data, accessor) {
var keys = accessor.split('.'),
result = data;
while (keys.length > 0) {
var key = keys.shift();
if (typeof result[key] !== 'undefined') {
result = result[key];
}
else {
result = null;
break;
}
}
return result;
}
,或將其提供給所有對象 :(親自,我不喜歡這個......)
Object.prototype.access = function (accessor) {
var keys = accessor.split('.'),
result = this;
while (keys.length > 0) {
var key = keys.shift();
if (typeof result[key] !== 'undefined') {
result = result[key];
}
else {
result = null;
break;
}
}
return result;
};
調試輸出:
console.log(
helper(data, accessor), // will return 'f'
data.access(accessor) // will return 'f'
);
那麼分裂點,然後遍歷它們並將它們設置在多維數組中?看起來不錯! – 2011-04-13 09:21:40