簡體   English   中英

如何使用Javascript從對象中查找項目?

[英]How to find item from an object with Javascript?

我有我的數據對象:

var elements = {
        'element' : {
            'name' : 'test',
                    'price' : '55'
        },
        'element' : {
            'name' : 'letev',
                    'price': '223'
        }
    };

現在,我不知道如何按名稱查找每個元素 我需要通過名稱測試查找元素,然后訪問其他參數(價格,..)

假設您的對象是數組,而不是使用的語法:

var elements = [
    {
        'name' : 'test',
        'price' : '55'
    },{
        'name' : 'letev',
        'price': '223'
    }
];

您可以像這樣過濾掉元素:

searchName = 'test';
elements.filter(function(element){
    return element.name == searchName;
});

這只會返回名稱為'test'的元素。

或作為功能:

function filterByName(array, namr){
    array.filter(function(element){
        return element.name == name;
    });
}

這樣稱呼:

array result = filterByName(elements, 'test');

如果你需要支持IE 8或更低,則可以使用填充工具Array.prototype.filter

您必須將元素更改為數組:

var elements = [
    {
        'name' : 'test',
        'price' : '55'
    },
    {
        'name' : 'letev',
        'price': '223'
    }
];

function findElementByName(name, elementsForSearch) {
    if (name) {
        elementsForSearch.filter(function(elem){
            return elem.name === 'name';
        });
        return elementsForSearch[0];
    }
    return {};
}

alert(findElementByName('test', elements).name)

嘗試:

var elements = [
  {
    'name' : 'test',
    'price' : '55'
  },
  {
    'name' : 'letev',
    'price': '223'
  }
];

var search = 'letev';
for (var i = 0; i < elements.length; i++) {
  if (elements[i].name == search) {
    alert('found!');
    break;
  }
}

或使用Array.filter

var search = 'letev';
var output = elements.filter(function(element) {
  return element.name == search;
});

如果您的elements對象是一個數組,則可以執行此操作,即

var elements = [{
        'element' : {
            'name' : 'test',
                    'price' : '55'
        },
        'element' : {
            'name' : 'letev',
                    'price': '223'
        }
    }];

var price;
for (var i=0; i  <elements.length; i++) { 
    if (elements[i].name === 'test') {
        price = elements[i].price;
        break;
    }
}

嘗試這個

var List= (JObject)JsonConvert.DeserializeObject(jsonstring);
    var result= List["element"].Children().Select(node => node["name"]== "Test").ToList();

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM