使用参数

时间:2015-11-02 16:47:34

标签: javascript arrays object

我有对象数组

var myarray = 
[
  {
    "ID":100, 
    "Nama":"IPAddress",    
    "AData":"192.168.11.10"
  },{
    "ID":101, 
    "Nama":"Frekuensi", 
    "AData":"5.X Ghz"
  },{
    "ID":102, 
    "Nama":"Type", 
    "AData":"Access Point"
  }
]

我创建了这样的函数搜索数组,基于" ID"像这样

function SearchArrayBasedID(NamaArray, SValue, ReturnKey){
    var index1 = -1;
    for (var i = 0; i < NamaArray.length; i++) {
        if (NamaArray[i].ID == SValue){
            index1 = i
            i = NamaArray.length;
        } 
    }
    var ReturnValue;
    if (ReturnKey == 0){
        ReturnValue = index1
    }else{
        ReturnValue = NamaArray[index1].ReturnKey;
    }
    return ReturnValue

}

它的成功。但如果我将我的功能修改为:

function SearchArray(NamaArray, SKey, SValue, ReturnKey){
    var index1 = -1;
    for (var i = 0; i < NamaArray.length; i++) {
        if (NamaArray[i].SKey == SValue){
            index1 = i
            i = NamaArray.length;
        } 
    }
    var ReturnValue;
    if (ReturnKey == 0){
        ReturnValue = index1
    }else{
        ReturnValue = NamaArray[index1].ReturnKey;
    }
    return ReturnValue
} 

它的错误或没有值返回(index1是-1) 请帮我。 我这样称呼这个方法

var a = SearchArrayBasedID(myarray, 100, 0)  --> return : 0
var b = SearchArray(myarray, "ID", 100, 0)   --> return : -1

1 个答案:

答案 0 :(得分:1)

if (NamaArray[i].SKey == SValue){

应该是

if (NamaArray[i][SKey] == SValue){

因为变量作为属性的访问需要括号。