Javascript 从json数组中成对获取值
首先,这是我从php源代码获得的json值:Javascript 从json数组中成对获取值,javascript,jquery,ajax,json,Javascript,Jquery,Ajax,Json,首先,这是我从php源代码获得的json值: [{"oid":"2","cid":"107"},{"oid":"4","cid":"98"},{"oid":"4","cid":"99"}] 然后,我想获得和oid值以及相应的cid值,例如,一次获得oid=2和cid=107,另一次获得oid=4和cid=98等等。我正在尝试使用jquery和ajax来实现这一点 我试过很多答案,比如:但是它们不能解决我的问题 我试过这个: for(变量i=0;i
[{"oid":"2","cid":"107"},{"oid":"4","cid":"98"},{"oid":"4","cid":"99"}]
然后,我想获得和oid
值以及相应的cid
值,例如,一次获得oid=2
和cid=107
,另一次获得oid=4
和cid=98
等等。我正在尝试使用jquery和ajax来实现这一点
我试过很多答案,比如:但是它们不能解决我的问题
我试过这个:
for(变量i=0;i
但是,所有这些操作都是返回密钥名,而密钥名在使用时同样不起作用。因此,您有一个密钥/值对数组。在每个索引处循环该数组,记录每一对:
var obj = [{"oid":"2","cid":"107"},{"oid":"4","cid":"98"},{"oid":"4","cid":"99"}];
for (var i = 0; i < obj.length; i++) {
console.log("PAIR " + i + ": " + obj[i].oid);
console.log("PAIR " + i + ": " + obj[i].cid);
}
var obj=[{“oid”:“2”,“cid”:“107”},{“oid”:“4”,“cid”:“98”},{“oid”:“4”,“cid”:“99”}];
对于(变量i=0;i
演示:这是一个您拥有的阵列//我们称之为: [{“oid”:“2”,“cid”:“107”},{“oid”:“4”,“cid”:“98”},{“oid”:“4”,“cid”:“99”}] 要获取第一个元素:
a[0]
//这将为您提供第一个对象,即{“oid”:“2”,“cid”:“107”}
a[0][“oid”]
//这将为您提供键为“oid”的第一个对象的值,即2
等等
希望有帮助。
`基本上,您需要的是使用属性对数组中的对象进行分组
// To map a property with other property in each object.
function mapProperties(array, property1, property2) {
var mapping = {};
for (var i = 0; i < data.length; i++) {
var item = data[i];
mapping[item[property1]] = mapping[item[property1]] || [];
mapping[item[property1]].push(item[property2]);
}
return mapping;
}
// To index the items based on one property.
function indexWithProperty(array, property) {
var indexing = {};
for (var i = 0; i < data.length; i++) {
var item = data[i];
indexing[item[property]] = indexing[item[property]] || [];
indexing[item[property]].push(item);
}
return indexing;
}
var data = [{
"oid": "2",
"cid": "107"
}, {
"oid": "4",
"cid": "98"
}, {
"oid": "4",
"cid": "99"
}];
var oidCidMapping = mapProperties(data, "oid", "cid");
console.log(oidCidMapping["2"]); // array of cids with oid "2"
var indexedByProperty = indexWithProperty(data, "oid");
console.log(indexedByProperty["4"]); // array of objects with cid "4"
//将一个属性映射到每个对象中的其他属性。
函数映射属性(数组、属性1、属性2){
var映射={};
对于(变量i=0;i
也许这不是你需要的确切解决方案,但我希望我能给你指明你必须前进的方向
如果您愿意使用其他库,您可以通过实现同样的效果,请包括尝试的解决方案,为什么它们不起作用,以及预期的结果。我建议您做一件事:打开chrome的js控制台,查看调试器中的变量。然后您应该能够看到出了什么问题(可能试图访问错误的变量,或者不够深入)。好的。这很好。但是我如何使用记录的值???对不起,我对控制台不太了解。log@anubhavssd--将console.log替换为您想对其执行的任何操作。将它们分配给变量、分配给输入等。只需引用
obj[i]。oid
和obj[i]cid
如何将每个“oid”分配为oid数组?就像您想要[2,4,4]数组一样