【问题标题】:jquery access column of a multidimensional arrayjquery访问多维数组的列
【发布时间】:2015-02-25 08:47:47
【问题描述】:

我有一个多维向量数组,如下所示:

var mutliDimArr = [[1,0,0],[0,0,1],[0,1,0]];

我希望形成另一个第 i 列元素的数组 例如,如果我编写一个函数 getColumnarArray(1), 然后它必须返回一个新数组 [0,0,1] ..这是来自上述 mutliDimArr 的第二个元素

我尝试了以下方法,但它没有给我想要的结果。:

function getColumnarArraycolumn(){
    var output = [];
    var column = 1;


    $.map(multiDimArray, function( arrayVect, column) {
        output.push(arrayVect[column]);
    });

    console.log(output);
}

请指教,

谢谢!

【问题讨论】:

    标签: javascript jquery arrays multidimensional-array


    【解决方案1】:

    有一个内置的 JavaScript 数组方法 - map https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/map

    所以你的代码可能看起来像:

    var columnArr = mutliDimArr.map(function(row) {
        return row[1];
    }); 
    

    【讨论】:

      【解决方案2】:

      在这里查看working fiddle

      var multiDimArray = [[1,0,0],[0,0,1],[0,1,0]];
        var output = [];
          var column = 1;
      
          $.map(multiDimArray, function( arrayVect) {
              output.push(arrayVect[column]);
          });
      
          console.log(output);
      

      【讨论】:

        【解决方案3】:

        map回调函数中传递了第二个参数,它是当前对象索引,

        var column = 1;
         $.map(multiDimArray, function( arrayVect, index) { 
               //arrayVect object index not global variable
                output.push(arrayVect[column]);
         });
        

        function getColumnarArraycolumn(multiDimArray) {
          var output = [];
          var column = 1;
        
        
          $.map(multiDimArray, function(arrayVect, index) {
            output.push(arrayVect[column]);
          });
        
          alert(JSON.stringify(output));
        }
        var mutliDimArr = [
          [1, 0, 0],
          [0, 0, 1],
          [0, 1, 0]
        ];
        getColumnarArraycolumn(mutliDimArr);
        <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

        【讨论】:

          【解决方案4】:

          试试这个你会得到答案,

          var column = 1;
          for (var i = 0; i < mutliDimArr.length; i++) {
          console.log(mutliDimArr[i][column]);
          }
          

          【讨论】:

            猜你喜欢
            • 2021-05-13
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2011-08-02
            • 1970-01-01
            • 2019-06-12
            • 2012-05-29
            • 1970-01-01
            相关资源
            最近更新 更多