我的代码通过AJAX将JS对象列表作为JSON返回。此列表使用JSON.parse进行解析并保存在变量中。
var myListOfObjects = [
{"id":1,"Name":"John","xcoord":23.7,"ycoord":37.2},
{"id":2,"Name":"Mary","xcoord":17.7,"ycoord":54.6},
....
];
将同一方法与这些对象中的每一个相关联的最佳方法是什么,以便在迭代它们时可以调用它:
myListOfObjects.forEach( function(person){
console.log( person.getDistance() );
} );
我可以在每次迭代时定义参数,但这看起来效率不高,并且不容易用d3js实现(它需要在将它绑定到DOM选择之前首次重复列表)。
感谢。
答案 0 :(得分:1)
写一个getDistance(person);所以不要把它放在人物中,而是放在集中的地方
答案 1 :(得分:0)
正如@dfsq在评论中所建议的那样,可能是装饰我的JSON对象:
function DecoratedPerson( ajaxData ){
this.person = ajaxData;
}
DecoratedPerson.prototype.getDistance = function(){
return this.person.xcoord*this.person.xcoord + this.person.ycoord*this.person.ycoord;
};
然后在循环内装饰ajax对象。
myListOfObjects.forEach( function(person){
var myPerson = DecoratedPerson( person );
console.log( myPerson.getDistance() );
} );
最终,可以通过指定reviver参数在JSON.parse()步骤中完成装饰。