簡體   English   中英

如何在JavaScript對象中過濾數組中的元素

[英]How to filter elements in array in JavaScript object

如果我有這樣的JavaScript對象:

{"products":
    [
        {
            "id":"6066157707315577",
            "reference_prefix":"BB",
            "name":"BeanieBaby",
            "product_line":false,
            "has_ideas":true
        },
        {
           "id":"6066197229601550",
           "reference_prefix":"BBAGS",
           "name":"BlackBags",
            "product_line":false,
            "has_ideas":false
        }
    ],  
    "pagination": {
        "total_records":4,
        "total_pages":1,
        "current_page":1
    }
}

如何在js中編寫一個函數以遍歷每一對,並僅返回has_ideas === true的數組元素?

我從這個開始,但是我被卡住了。 顯然,我對此並不陌生。 任何幫助表示贊賞。

product: function(mybundle) {

    var json = JSON.parse(mybundle.response.content);
    for(var i = 0; i < json.length; i++) {
        var obj = json[i];

        if (json[i].id === "has_ideas" && json[i].value === true) {
            return json;
        }
       return [];
    } 
}

您可以通過簡單地檢查該屬性來過濾出每一對:

var json = {"products":[{"id":"6066157707315577","reference_prefix":"BB","name":"BeanieBaby","product_line":false,"has_ideas":true},{"id":"6066197229601550","reference_prefix":"BBAGS","name":"BlackBags","product_line":false,"has_ideas":false}],"pagination":{"total_records":4,"total_pages":1,"current_page":1}}

var stuff = json.products.filter(function(obj) {
    return obj.has_ideas === true
});

console.log(stuff);

演示: http//jsfiddle.net/bsyk18cb/

嘗試這個

product: function(mybundle) {
    var json = JSON.parse(mybundle.response.content);
    for(var i = 0; i < json.length; i++) {
        if(json[i].has_ideas === true){
            return json;
        }
        return [];
    }
}

您要檢查“ has_ideas”屬性,如果為true,則返回ID。

product: function(mybundle) {

    var json = JSON.parse(mybundle.response.content);
    for(var i = 0; i < json.length; i++) {
         if (json[i].has_ideas === true) {
            return json[i].id;
        }
       return [];
    } 
}

使用下面的代碼。

這將返回具有has_ideas=true的元素數組

var json = "{'products':"+
    "["+
        "{"+
            "'id':'6066157707315577',"+
            "'reference_prefix':'BB',"+
            "'name':'BeanieBaby',"+
            "'product_line':false,"+
            "'has_ideas':true"+
        "},"+
        "{"+
           "'id':'6066197229601550',"+
           "'reference_prefix':'BBAGS',"+
           "'name':'BlackBags',"+
            "'product_line':false,"+
            "'has_ideas':false"+
        "}"+
    "],"+
    "'pagination': {"+
        "'total_records':4,"+
        "'total_pages':1,"+
        "'current_page':1"+
    "}"+
"}";

function filter(){
    var jsonArr = [];
    var gList = eval( "(" + json + ")");
    alert(gList.products.length);
    for(var i=0;i<gList.products.length;i++){
        if(gList.products[i].has_ideas){
            jsonArr.push(gList.products[i]);
        }
    }
    return jsonArr;
}

演示版

暫無
暫無

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

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