相关疑难解决方法(0)

将未知数量的参数传递给javascript函数

有没有办法传递未知数量的参数,如:

var print_names = function(names) {
    foreach(name in names) console.log(name); // something like this
}

print_names('foo', 'bar', 'baz');
Run Code Online (Sandbox Code Playgroud)

另外,如何获取传入的参数数量?

javascript

72
推荐指数
5
解决办法
6万
查看次数

如何在JavaScript中按多列对多维数组进行排序?

我一整天都在努力解决这个问题而没有一个好的解决方案.谷歌一直没有什么帮助.我有一个脚本需要接受具有未知数量的行/列的二维数组.该脚本还需要接受一维数组,该数组包含要排序的列列表,另一个包含要排序的顺序.电话会看起来像这样:

var orderList = {0,4,3,1};
var orderDir = {asc,desc,desc,asc};
dataArr = do2DArraySort(dataArr, orderList, orderDir);
Run Code Online (Sandbox Code Playgroud)

函数do2DArraySort应返回按第一列(按升序排序)排序的dataArr数组,然后按第五列(按降序排序),然后按第三列(按降序排序),再按第二列(按降序排序)排序.我可以使用下面的代码将其设置为两级,但是一旦我尝试添加第三个排序列,它就会崩溃.我理解为什么,但我无法找到一个好的方法来使它工作.

有这样做的标准方法吗?有人能指出我在线的好脚本,我可以学习并用作模板吗?或者有人建议修改我的代码以使其工作?

谢谢!

//appends an array content to the original array
function addToArray(originalArray, addArray) {
    if (addArray.length != 0) {
        var curLength = 0;
        curLength = originalArray.length;
        var maxLength = 0;
        maxLength = curLength + addArray.length;  
        var itrerateArray = 0;
        for (var r = curLength; r < maxLength; r++) {   
            originalArray[r] = addArray[itrerateArray];
            itrerateArray++;
        }
    }
}

function do2DArraySort(arrayToBeSorted, sortColumnArray, sortDirectionArray) {
    if (arrayToBeSorted == "undefined" …
Run Code Online (Sandbox Code Playgroud)

javascript arrays sorting multidimensional-array

10
推荐指数
1
解决办法
2万
查看次数

首先按布尔列然后按字符串列对数组进行排序

我正在尝试按 2 个字段对数组进行排序。我有一个布尔值:isFavorite 和一个字符串:名称。所有为真的布尔值必须是第一项。但我希望数组是按字母顺序排列的。到目前为止,这是我的代码(尝试了多种方法):

data.sort(function (x,y) {
    if (x.isFavorite){
        return -1;
    }
    if (x.isFavorite && !y.isFavorite && (x.name < y.name)){
        return -1;
    }  else if ((x.isFavorite === y.isFavorite) && (x.name === y.name)){
        return 0;
    } else if (x.isFavorite && y.isFavorite && (x.name < y.name)){
        return -1;
    } else if (!x.isFavorite && !y.isFavorite && (x.name > y.name)){
        return 1;
    }
}
Run Code Online (Sandbox Code Playgroud)

javascript arrays sorting typescript angular

6
推荐指数
2
解决办法
4282
查看次数

javascript排序数组双排序

我有一个对象数组MyArrayOfItems,Item其对象看起来像这样:

Item
{
  ContainerID: i, // int
  ContainerName: 'SomeName', // string
  ItemID: j, // int
  ItemName: 'SomeOtherName' // string
}
Run Code Online (Sandbox Code Playgroud)

我想对这个数组进行排序,以便按顺序排序ContainerID,然后按ItemName字母顺序排序.

我有一个自定义排序功能,到目前为止看起来像这样:

function CustomSort(a, b) {

  Item1 = a['ContainerID'];
  Item2 = b['ContainerID'];

  return Item1 - Item2;
}

MyArrayOfItems.sort(CustomSort);
Run Code Online (Sandbox Code Playgroud)

这是按ContainerID排序的,但我如何按ItemName排序?

谢谢.

javascript

5
推荐指数
2
解决办法
3862
查看次数