gpt4 book ai didi

javascript - 在javascript中存储多个数据

转载 作者:行者123 更新时间:2023-11-28 18:32:25 25 4
gpt4 key购买 nike

我正在尝试找出一种在 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);

或者类似的东西。我该如何实现这个?

最佳答案

是的,只需返回一个对象

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;

// Here we create and return an object with two keys: left and top
return {
top: top,
left: left
}
}

并且,为了避免两次计算值,您可以将值存储在其他对象 a1Coordsa2Coords 中:

var a1Coords = getCoordinates(a1);
var a2Coords = getCoordinates(a2);

drawAggregate(a1Coords.left, a1Coords.top, a2Coords.left, a2Coords.top);

我假设您的坐标每次都会发生变化,因此您实际上并不希望将坐标存储在 getCooperatives 函数中,而只想计算并返回它们。

关于javascript - 在javascript中存储多个数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37729332/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com