javascript - 将参数作为数组元素传递

标签 javascript arrays function parameter-passing

我想将数组元素作为参数传递给我的函数。

我有一个数组,我的数组有 Column1 和 Column2 元素。 我的代码根据column1或column2对数组进行排序。 现在,我将 1 和 2 值作为参数传递,并且我的排序代码中有一个 if 条件。

我想更改我的代码,例如:

function sortGrid(ColumnName)

var val1 = a.ColumnName.toLowerCase()

您有什么建议吗?

代码:

<html lang="">
<body>

<script>
var arr = [{"Column1":"A","Column2":"F"},{"Column1":"Z","Column2":"B"}];

    function sortGrid(col) {
        arr.sort(function (a, b) {
            if (col == 1)
            {
                var val1 = a.Column1.toLowerCase();
                var val2 = b.Column1.toLowerCase();
            };
            if (col == 2)
            {
                var val1 = a.Column2.toLowerCase();
                var val2 = b.Column2.toLowerCase();
            };

            if (val1 < val2)
                return -1
            if (val1 > val2)
                return 1
        });
    }

    sortGrid(1)
    console.log(arr[0].Column1)
    console.log(arr[1].Column1)

    console.log('-------------------')

    sortGrid(2)
    console.log(arr[0].Column1)
    console.log(arr[1].Column1)


</script>
</body>
</html>

最佳答案

您可以使用a[ColumnName]来做到这一点:

var arr = [{"Column1":"A","Column2":"F"},{"Column1":"Z","Column2":"B"}];

function sortGrid(colName) {
  arr.sort(function (a, b) {
    var val1 = a[colName].toLowerCase();
    var val2 = b[colName].toLowerCase();
    return   val1 < val2 ? -1
           : val1 > val2 ? 1
           : 0;
  });
}

sortGrid('Column1')
console.log(arr[0].Column1)
console.log(arr[1].Column1)

console.log('-------------------')

sortGrid('Column2')
console.log(arr[0].Column1)
console.log(arr[1].Column1)

请注意,当值相等时,您应该返回 0,因此我使用了三元运算符(两次),其中也包含 0。

关于javascript - 将参数作为数组元素传递,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38399007/

相关文章:

javascript - 为什么我无法获取 $sceProvider?

javascript - 级联 JS 函数 - 如何将变量从一个函数传输到另一个函数

数组属性的 JavaScript getter 方法

java - 如何获取与数组类型关联的类?

javascript - RxJS 将数组与另一个可观察量映射并返回数组

javascript - 如何将 Google Places API 限制为国家/地区并且仅通过邮政编码进行搜索?

Javascript:错误:找不到模块 '../data/icons/table.png'

php - 自动包含缺少的功能?

javascript - 我的代码在输出下面不断返回 undefined

jquery - 如何使用 JQuery 更新另一个元素的内容