javascript - 使用参数创建函数搜索对象数组

标签 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

最佳答案

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

应该是

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

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

关于javascript - 使用参数创建函数搜索对象数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33482708/

相关文章:

javascript - 如何使用 javascript 或 Angular 将一个数组的每个元素添加到其他数组中的相应元素

javascript - 如何获取或将 Parse 查询转换为数组(JavaScript SDK)

javascript - 在对象内临时包装具有相同类型的数组项

javascript - React - 无法在 .map 中使用 Try Catch block (从 try catch 中返回 jsx)

javascript - 在 JS 中,为什么 slice() 文档说它是浅拷贝,而它看起来像深拷贝?

javascript替换没有类的p标签的div标签

javascript - 按键合并对象并添加值Javascript

javascript - 如何选择每个div的第一个子元素

php - 将序列化数组作为字符串进行搜索是否安全? (MySql查询)

javascript - 为什么 JavaScript 中的对象不能是其自身的原型(prototype)?