我需要從json ID在產品頁面上設置三個類別元變量。每個產品頁面可以包含頁面上的任意數量的產品,並且每個產品可以具有這些類別中的每個類別的值。將層次結構中的Json與設置變量進行比較
如果產品1有值,我們使用這些值。但是,如果產品1具有零('無'類別)或者未定義,則需要轉至下一個產品,等等,直到找到類別值,或者如果產品1到達產品比較結束。
JSON
_jsonmeta = [
{ "Product": 1, "c1": 0, "c2": 1111, "c3": undefined },
{ "Product": 2, "c1": 2222, "c2": 2222, "c3": undefined }];
//should set category1=2222, category2 = 1111, category3 = 0 ('None')
然後,我通過傳遞項目和指標
function compareJson(json) {
$.each(json, function (i, item) {
//update if applicable
category1 = checkForNullOrZero(item.c1, i);
category2 = checkForNullOrZero(item.c2, i);
category3 = checkForNullOrZero(item.c3, i);
});
然後,我需要一種方法來排序,篩選,或反對所有其他比較當前值設定每個類別產品的各自類別。
function checkForNullOrZero(categoryidarg, indexarg) {
if (categoryidarg == null || typeof categoryidarg === 'undefined') {
//ignore it if undefined
console.log('Ignore: ' + categoryidarg);
}
else if (categoryidarg == 0) {
//check the others because this category is 'None'
console.log('Fall through to next: ' + _jsonmeta[indexarg]);
}
else {
//check the hierarchy to see if this Area trumps the others
console.log('Compare: ' + categoryidarg + ' vs ' + _jsonmeta[indexarg]);
}
//need to return category here
}
}
這是一個完整的小提琴:http://jsfiddle.net/TheFiddler/6mwpff7p/
太棒了,第二種方法更好。我會跟着去的,謝謝。 – User970008 2014-08-28 14:57:11