Javascript 需要从变量获取/显示属性
我已经搜索过了,但可能只是不明白,需要一个真正的人来帮助解释。我有一个生成以下变量的脚本:Javascript 需要从变量获取/显示属性,javascript,Javascript,我已经搜索过了,但可能只是不明白,需要一个真正的人来帮助解释。我有一个生成以下变量的脚本: var trackerResult = { "sessionId": "16zA06FJt5sp", "customerId": "16zA06FJt5so", "contact": { "firstName": "Bilbo", "lastName": "Baggins", "email": "bbshireguy@gmail.co
var trackerResult = {
"sessionId": "16zA06FJt5sp",
"customerId": "16zA06FJt5so",
"contact": {
"firstName": "Bilbo",
"lastName": "Baggins",
"email": "bbshireguy@gmail.com"
},
"orders": [{
"orderId": "16zA06FJt5ss",
"number": 11512,
"items": [{
"price": 97,
"productId": "16zA06FJt3of",
"productName": "Main"
}]
}, {
"orderId": "16zA06FJt5sw",
"number": 11513,
"items": [{
"price": 49,
"productId": "16zA06FJt3op",
"productName": "Upsell"
}]
}],
"demoMode": "1"
};
我需要能够简单地显示产品名称和价格。如果脚本生成的内容稍微简单一点,我可以这样做,但据我所知,有些属性在技术上是一个孩子的孩子
先谢谢你
trackerResult.orders.forEach( function ( order ) {
order.items.forEach( function ( item ) {
console.log( item.productName, item.price );
});
});
(
forEach
未在IE8/7中实现,因此您需要在这些浏览器中使用它)首先,获取该对象并添加一些空白,以便您可以实际查看发生了什么:
var trackerResult = {
"sessionId":"16zA06FJt5sp",
"customerId":"16zA06FJt5so",
"contact":{
"firstName":"Bilbo",
"lastName":"Baggins",
"email":"bbshireguy@gmail.com"
},
"orders":[
{
"orderId":"16zA06FJt5ss",
"number":11512,
"items":[
{
"price":97,
"productId":"16zA06FJt3of",
"productName":"Main"
}
]
},
{
"orderId":"16zA06FJt5sw",
"number":11513,
"items":[
{
"price":49,
"productId":"16zA06FJt3op",
"productName":"Upsell"
}
]
}
],
"demoMode":"1"
};
现在,要获得产品名称和价格,您可以执行以下操作:
var orders = trackerResult.orders,
ordercnt = orders.length,
items, itemcnt, i, j,
output = "";
for( i=0; i<ordercnt; i++) {
output += "Order #"+orders[i].number+"\n==========\n";
items = orders[i].items;
itemcnt = items.length;
for( j=0; j<itemcnt; j++) output += items[j].productName+" "+items[j].price;
output += "\n";
}
// do something with "output";
document.getElementById('price').innerHTML = trackerResult.orders[1].items[0].price;
document.getElementById('productId').innerHTML = trackerResult.orders[1].items[0].productId;
document.getElementById('productName').innerHTML = trackerResult.orders[1].items[0].productName;
var orders=trackerResult.orders,
ordercnt=orders.length,
项目,项目Cnt,i,j,
输出=”;
对于(i=0;i首先,在“contact”
之后缺少一个冒号“:”
现在,在trackerResult
变量中,您感兴趣的字段是orders
数组。在orders
数组的每个成员中,都有一个items
数组。每个项目都包含名称和价格
我们将在两个嵌套循环中遍历这两个字段
var trackerResult = {"sessionId":"16zA06FJt5sp","customerId":"16zA06FJt5so","contact": {"firstName":"Bilbo","lastName":"Baggins","email":"bbshireguy@gmail.com"},"orders":[{"orderId":"16zA06FJt5ss","number":11512,"items":[{"price":97,"productId":"16zA06FJt3of","productName":"Main"}]},{"orderId":"16zA06FJt5sw","number":11513,"items":[{"price":49,"productId":"16zA06FJt3op","productName":"Upsell"}]}],"demoMode":"1"};
var result = '';
for (var i = 0; i < trackerResult.orders.length; i++) {
for (var j = 0; j < trackerResult.orders[i].items.length; j++) {
result += trackerResult.orders[i].items[j].productName + ': ' + trackerResult.orders[i].items[j].price + '\n';
}
}
alert(result);
var trackerResult={“sessionId”:“16zA06FJt5sp”,“customerId”:“16zA06FJt5so”,“contact”:{“firstName”:“Bilbo”,“lastName”:“Baggins”,“email”:bbshireguy@gmail.com},“订单”:[{“订单ID”:“16zA06FJt5ss”,“编号”:11512,“项目”:[{“价格”:97,“产品ID”:“16zA06FJt3of”,“产品名称”:“主”}]},{“订单ID”:“16zA06FJt5sw”,“编号”:11513,“项目”:[{“价格”:49,“productId:“16zA06FJt3op”,“productName:“Upsell”}]}],“demoMode:“1”};
var结果=“”;
对于(var i=0;i
首先,var中有一个错误-在“联系”之后缺少一个:
。修复此错误将允许我们继续:)
然后,一旦设置好,您需要迭代您的订单以查看所有产品及其价格
for ( var i = 0, l = trackerResult.orders.length; i < l; i++ ) {
var order = trackerResult.orders[i];
for ( var j = 0, k = order.items.length; j < k; j++ ) {
var item = order.items[j];
// here are the values you need to do something with
// so do something with them now!
var productName = item.productName;
var price = item.price;
console.log( productName, price );
}
}
for(var i=0,l=trackerResult.orders.length;i
不知道你想用这些产品做什么,但这会让你接触到它们 要访问,请说出您将使用的订单项目:
trackerResult.orders[1].items[0].price
trackerResult.orders[1].items[0].productId
trackerResult.orders[1].items[0].productName
要将此信息放入HTML页面,您需要执行以下操作:
var orders = trackerResult.orders,
ordercnt = orders.length,
items, itemcnt, i, j,
output = "";
for( i=0; i<ordercnt; i++) {
output += "Order #"+orders[i].number+"\n==========\n";
items = orders[i].items;
itemcnt = items.length;
for( j=0; j<itemcnt; j++) output += items[j].productName+" "+items[j].price;
output += "\n";
}
// do something with "output";
document.getElementById('price').innerHTML = trackerResult.orders[1].items[0].price;
document.getElementById('productId').innerHTML = trackerResult.orders[1].items[0].productId;
document.getElementById('productName').innerHTML = trackerResult.orders[1].items[0].productName;
您可以在此处看到一个示例:
但据我所知,有一些财产在技术上是一个孩子的孩子
是的!这里还有一个数组属性
要访问对象中的属性,只需编写以下代码:
alert(trackerResult.sessionId);
这是一个值类型属性。数字是值类型的另一个示例
要访问子对象的属性,只需遵循相同的逻辑:
alert(trackerResult.contact.firstName);
这和第一个例子没什么不同。您正在访问一个属性,该属性是一个包含其自身属性的类型。您可以通过大括号{}
来说明这一点
最后一个示例是数组类型。访问这些有点不同。首先需要确定数组的大小。可以通过访问可用于所有阵列的length属性来实现这一点
alert("There are " + trackerResult.orders.length + " order(s)!");
一旦确定了数组的长度,就可以使用for循环对其进行迭代,如下所示:
for(var x = 0; x < trackerResult.orders.length; x++)
alert("Order number " + trackerResult.orders[x].number + " has " + trackerResult.orders[x].items.length + " items!");
for(var x=0;x
从那里,您可以创建另一个循环来迭代每个订单的项目。trackerResult.orders[0]。项目[0]。price trackerResult.orders[0]。项目[0]。productName您可以使用
forEach对其进行迭代。