我试图编写一个可以灵活地接受来自对象的属性值的函数,该对象可能是另一个属性的子元素。在这个例子中,myData数组中的每个对象都有一个名为' prop'的属性,它有一个名为' subprop'的子属性。这是一个日期值。我无法通过功能找到该值。嵌套的级别可能在函数的其他用途中有所不同。我在这里:
retrievedValues = getHistorical(myData, "prop.subprop", "Year");
function getHistorical(data, propertyChain, selectedHistory){
var returnedValues = [];
if(selectedHistory === 'Year'){
var dtCutoff = moment().subtract('years', 1);
}
for(var j=0, jj=data.length; j<jj; j+=1){
if(data[j][propertyChain] > dtCutoff){
returnedValues.push(data[j]);
}
}
return returnedValues;
}
此时我还没有找到回答或结束问题的方法,但我注意到一个对我有用的解决方案是这里提到的一个简短的递归函数:stackoverflow.com/a/8817531/1689908 < / p>
答案 0 :(得分:0)
我提出了一些解决这个问题的小方法。
value = myData.getValueForKeyPath('prop.subprop');
https://github.com/eppz/eppz-js/blob/master/Classes/eppz!js/KeyPaths.js