我有数据:
var category = [
{id:0, name : "category_1"} ,
{id:2, name : "category_2"},
];
var items = [
{id:0, name : "a", category_id : 0} ,
{id:1, name : "b", category_id : 1} ,
{id:2, name : "c", category_id : 0},
{id:3, name : "d", category_id : 1}
];
我的问题是:我如何通过 items.category_id 类别获取 items.name 和 category.name ? 谢谢你的帮助
答案 0 :(得分:1)
JSON不是SQL数据库,因此您不需要拥有两个JSON结构或文件。 只需改写:
{
'0': {"name" : "category_1",
"items": {
"0": "a",
"2": "c"
}
},
'2': {"name" : "category_2",
"items": {
"2": "c",
"3": "d"
}
}
}
答案 1 :(得分:0)
在JavaScript中试用:
var item = items[0]; // Get the first item
var cat = null;
$.each(category, function(k, v){
if( v.id == item.category_id )
{
cat = this;
return false; // Return because we got a match
}
});
// If we got a match
if(cat)
alert(cat.name);
答案 2 :(得分:0)
这里有两个功能可以按类别ID查找项目,按ID
查找类别var findItemByCategoryId = function(id) {
var i = null;
var result = []
for (i = 0; items.length > i; i += 1) {
if (items[i].category_id === id) {
result.push(items[i]);
}
}
return result;
};
// example:
// categoryItems = findItemByCategoryId(0);
// for(var i=0; i<items.length; i++) {
// //alert(items[i].name)
// }
var findCategoryById = function(id) {
var i = null;
for (i = 0; category.length > i; i += 1) {
if (category[i].id === id) {
return category[i];
}
}
};
// example:
// alert(findCategoryById(0).name);
答案 3 :(得分:0)
var result = [];
var temp = [];
$.each(category,
function(index, c) {
$.each(items,
function(i, value) {
if (value.category_id == c.id) {
temp.push(value.name);
}
});
result.push({
category_name: c.name,
values: temp
});
temp = [];
});
console.log(result);
答案 4 :(得分:0)
对于这些数据:
var category = [
{id:0, name : "category_1"} ,
{id:2, name : "category_2"}
];
var items = [
{id:0, name : "a", category_id : 0} ,
{id:1, name : "b", category_id : 1} ,
{id:2, name : "c", category_id : 2},
{id:3, name : "d", category_id : 3}
];
你有这个功能:
function getItemName(cat_id){
$.each(items, function(i, item){
if(item.category_id == cat_id)
return item.name;
})
}
使用类别ID调用,如下所示:getItemName(2);
它会返回您的商品名称。