【发布时间】:2016-10-10 07:20:01
【问题描述】:
我正在尝试找出一种方法来将数据存储在 javascript 中的某种列表或数组中。我有三个变量,分别称为 id、left 和 top。都在函数里
id:作为参数传递给函数的元素的索引。 左:在函数内计算 top:函数内计算
我正在寻找的是每次我调用具有不同 id 的函数时,该函数应该能够计算和存储 left 和 top 并以某种方式存储 id、left 和 top 以便我可以在另一个函数中访问它们称呼。
或者我可以使用对象来使用这些值吗?
功能:
function getCoordinates(id) {
scroll_value_Y = document.getElementById("svg_editor").scrollTop;
scroll_value_X = document.getElementById("svg_editor").scrollLeft;
offset_x = 298;
offset_y = 102;
var p = $('#' + id);
var offset = p.offset();
var left = Math.round(offset.left - offset_x + scroll_value_X);
var top = offset.top - offset_y + scroll_value_Y;
//something to store
}
在另一个函数调用中使用:
drawAggregate(getCoordinates(a1).left, getCoordinates(a1).top, getCoordinates(a2).left, getCoordinates(a2).top);
或者类似的东西。我该如何实现?
【问题讨论】:
-
是的,使用数组。
var a = []和a.push({top: top, left: left})(将索引视为 id)。 -
你可以返回一个带有这3个属性的json对象。你的 json 看起来像
{id: <your id>, left: <left position>, top: <top position>} -
你说的是记忆化(比如每个 id 的坐标只计算一次)?
标签: javascript function object functional-programming parameter-passing