将表行索引存储为数组索引

时间:2013-07-29 05:28:53

标签: javascript arrays indexing

有一个简单的功能:

selected_row = []; // global scope

function toggleRowNumber(rowIndex) {
  if(selected_row[rowIndex]) selected_row.splice(rowIndex, 1);
  else selected_row[rowIndex] = 1; 
}

使用

toggleRowNumber(50000); // click the row - write the index
toggleRowNumber(50000); // click the row again - remove the inxed

alert(selected_row.length);

50001 行

令人愉快的功能!

那么有没有办法在不进行任何搜索/循环的情况下直接写入|读取索引?如上所述,没有这个巨大的壮举。

感谢。

1 个答案:

答案 0 :(得分:0)

如果我正确地进行了购买,您希望存储和索引可以检查/设置是否选择项目的位置。如果是这种情况,那么您正在寻找“键 - 值”数据结构。那么,为什么不使用地图?

var selected_row = {};

function toggleRowNumber(rowIndex) {
if(selected_row[rowIndex]) selected_row[rowIndex] = 0; //or = undefined;
else selected_row[rowIndex] = 1; 
}

这样更好,因为哈希映射会为您节省时间和空间。

  • 空间,因为你没有在矢量中存储数百个“未定义”值。
  • 时间因为,在很多情况下,用于访问元素的哈希函数假装在正确的位置。