javascript - 使用 javascript 和 jquery 排列数组元素

标签 javascript jquery arrays sorting multidimensional-array

我正在尝试创建一个函数来排列表格中的点,如图所示:

enter image description here

我需要修改的代码是:

var rowsCount = 7;
var heightTable = 700;
var rowHeight = 100;

//an array with divs with elements, every element has a top and left position
var arrayOfDivs = [({topPosition : 99, leftPosition: 100}),({topPosition : 150, leftPosition: 400}),({topPosition : 578, leftPosition: 10})];

//so here create a function that will create arrays = rowCount, so here we will need 7 arrays and arrange elements from arrayOfDivs into new arrays


function arrangeInNewArrays (rowsCont,heightTable,rowHeight) {
    var j=0;
    for i=0 {
        if (arrayOfDivs.topPosition[0] > rowHeight*j < rowHeight){
              var array+j = array+j+arrayOfDivs[i];
        }else {
              i++,j++
        }
    }

    print arrayofDivs[i];
}

有什么建议吗?如何按行排列点...

请帮我做一下///

代码:http://jsfiddle.net/sYq9S/9/

最佳答案

我认为你可以使用这样的东西:

var ROW_HEIGHT = 100; //assume 100px, but you can change this
var rowsCount = 7;

var rows = [];
for(var i = 0; i < rowsCount; i++) {
    rows[i] = [];
}

for(var i = 0; i < arrayOfDivs.length; i++) {
   var position = arrayOfDivs[i];

   //The assumption is that the table starts at position 0. If not, you will
   //have to subtract the table's top position from topPosition
   var rowNumber = Math.floor(position.topPosition / ROW_HEIGHT);
   rows[rowNumber].push(position);
}

这将最终根据 topPosition 将 div 分组到行中.所以任何与0 <= topPosition < 100将在row[0] (第一行),任何带有 100 <= topPosition < 200 的东西将在row[1] (第二行)等等。

然后您可以迭代这些并根据 leftPosition 定位它们.

这不一定会给你 7行,因为它取决于 topPosition每个元素。所以如果你没有任何有 topPosition 的东西这样 600 <= topPosition < 600那么第七行就没有任何东西了。

如果你想按leftPosition排序在每一行中,您可以这样做:

for(var i = 0; i < rowsCount; i++) {
    rows[i].sort(function(a, b) {
        return a.leftPosition - b.leftPosition;
    });
}

Here is the fiddle .

关于javascript - 使用 javascript 和 jquery 排列数组元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17861311/

相关文章:

javascript - Node.js 从一个模块传递变量/对象并返回它

javascript - 使用 jQuery 将页面滚动到 div 的底部

javascript - 在函数中返回对象进行提升的成本

php - 从 Web 表单上的 50 多个复选框获取输入

javascript - jQuery .ready() 错误?

jquery - 从 JQuery 中的文件输入中获取数据

javascript .push 通过复制新值来覆盖以前的数组值

jquery - Django Tastypie 总是返回 401 未经授权

python - 如何就地反转 NumPy 数组?

javascript - 迭代 jQuery $(this).attr ('class' ).split ("") 给出奇怪的结果