2013-12-12 73 views
1

我想要做的是将检查添加到搜索“value_1”或“value_3”的for循环中。如果找到,则在该值的开始处添加“#”。为数组中的某些字符串值添加前缀“#”

例如:#值1,值#VALUE_3等

这里是我的代码:

for(i=1; i < columns.length-1; i++){ 
    currentRecordKey = columns[i].dataIndex; 
    if(currentRecordKey == "value_1" || "value_3") { 
     currentRecordKey = "#" + currentRecordKey; 
    } 
} 

在我的脑海制定出来,但是这并不把工作做好。

任何想法?

干杯

+0

什么似乎是这个问题?你没有解释你的代码出了什么问题,或者你想要解决什么问题。 – Jasper

+0

'“value_3”'一直是真的。看起来你有一个错字。 –

+0

对不起我的文章是拼写错字哈哈。但是-1对于我设置的网格是必需的 –

回答

4

应该

for(i=1; i < columns.length-1; i++){ 
    //icon record 
    var currentRecordKey = columns[i].dataIndex; 
    if(currentRecordKey == "value_1" || currentRecordKey == "value_3") { 
     currentRecordKey = "+" + currentRecordKey ; 
    } 
    columns[i].dataIndex = currentRecordKey; 
} 

你的错误是,如果不重申,你检查currentRecordKey == "value_3",JavaScript的将只检查是否currentRecordKey是真实的,任何非空字符串是。

此外,我已将注释掉icon record这也可能是一个错字。

编辑:也解决了Jasper解释的问题,并使currentRecordKey成为局部变量。

+2

如果你想改变'columns'数组中的数据,那么这将不会执行它,它仍然将“更新”字符串保存在一个单独的变量中,它将被覆盖循环的每个迭代。但是如果你想在循环中使用这个新变量,你应该很好。 – Jasper

+0

@Jasper:解决了问题 – JCOC611

+0

哦,没有修复真的需要我想。 OP没有说明他们真的是什么,但很好的答案。 – Jasper