这个数组理解是否正确?

时间:2013-11-13 21:53:19

标签: javascript arrays string list-comprehension

我有一个2维数组,我不想修改它以在函数中使用它。

其中一个元素必须是html代码的链接。 所以我想我能做出这种条件转换。

  
      
  1. 数组是二维arrayName [i] [j]。我不知所措。
  2.   
  3. 除了一个元素,每个元素都会转到新数组。 (长度 - 2位)
  4.   
  5. 必须在html链接中转换特殊项目。
  6.   

我尝试过类似的事情:

 [for( j = 0, j < arrayName[0].length, j++ )
  if (j <> arrayName[i].lenght - 2 ) arrayName[i][j] else "link things"
  ]

我也试试:

[for (j=0, j<arrayName[i].length,j++)
 function(j){if (j <> arrayName[i].length - 2 ){
             return arrayName[i][j];}
             else{ return "link thing";})}
 ]

当然&#34;链接事物&#34;应该是一个字符串:

'<a href=\"'+ array[i][j] + '\">Link.</a>'

但我没有通过调试。

2 个答案:

答案 0 :(得分:1)

如果您知道需要更改的位置,为什么要遍历数组项?为什么不直接更改索引length - 2的项目值?

类似于:

var arrayName = [...]; // your multi-dimesional array

// modify arrayName in place
for (i = 0; i < arrayName.length; i++) { // iteration over outer array
    var targetIndex = arrayName[i].length - 2;
    arrayName[i][targetIndex] = '<a href=\"'+ array[i][targetIndex] + '\">Link.</a>';
}

答案 1 :(得分:0)

您使用splice

for ( var i = 0, len = arrayName.length; i < len; ++i ) {
    var link = '<a href=\"'+ arrayName[i].splice(arrayName[i].length-2, 1)[0] + '\">Link.</a>';
    /* do somethink with link */
}

也许您应该检查是否arrayName[i].length-2 >= 0以避免可能的错误。