Javascript 如何编辑数组中的变量而不是增量?

Javascript 如何编辑数组中的变量而不是增量?,javascript,Javascript,请按照以下步骤获取完整代码: 以下是我遇到的问题: var dataID = 1; $('svg rect.grid').each(function() { $(this).attr('data-id', dataID); dataID++ }); 这将为从1开始创建的每个“svg矩形网格”(即正方形)动态创建一个属性“数据id”。代码生成9个正方形 我想更改dataID以使用数组,例如 4, 9, 2, 3, 5, 7, 8, 1, 6 而不是按顺序将每个正方形编号为1-9 我希望这是有

请按照以下步骤获取完整代码:

以下是我遇到的问题:

var dataID = 1;
$('svg rect.grid').each(function() {
$(this).attr('data-id', dataID);
dataID++
});
这将为从1开始创建的每个“svg矩形网格”(即正方形)动态创建一个属性“数据id”。代码生成9个正方形

我想更改dataID以使用数组,例如

 4, 9, 2, 3, 5, 7, 8, 1, 6
而不是按顺序将每个正方形编号为1-9


我希望这是有意义的。

只需使用数组和shift键依次获取每个元素:

var ids = [4, 9, 2, 3, 5, 7, 8, 1, 6];
$('svg rect.grid').each(function() {
    $(this).attr('data-id', ids.shift());
});

请注意,这会改变阵列,因此如果需要多次运行此过程,请确保没有将阵列永久存储在某个位置,并且每次都重新初始化它。(例如,将此代码放在函数中并调用它会起作用。)

只需使用数组和shift键依次获取每个元素:

var ids = [4, 9, 2, 3, 5, 7, 8, 1, 6];
$('svg rect.grid').each(function() {
    $(this).attr('data-id', ids.shift());
});

请注意,这会改变阵列,因此如果需要多次运行此过程,请确保没有将阵列永久存储在某个位置,并且每次都重新初始化它。(例如,将此代码放在函数中并调用它会起作用。)

哇,非常感谢!我刚刚被Javascript弄湿了脚,它仍然让我很困惑。希望通过研究它的工作原理能帮助我更好地理解它@JamesBurton数组
.shift()
方法很简单:它删除第一个元素(将所有其他元素向下移动一个)并返回它删除的元素。哇,非常感谢!我刚刚被Javascript弄湿了脚,它仍然让我很困惑。希望通过研究它的工作原理能帮助我更好地理解它@JamesBurton数组
.shift()
方法很简单:它删除第一个元素(将所有其他元素向下移动一个),并返回它删除的元素。