JavaScript 对象中的多个相同键
Multiple same keys in the JavaScript object
用 Google 搜索了最后几个小时,但找不到不编写任何函数或使用 map()
的方法。
我试图通过搜索前两个键找到在以下对象结构中获取 price
值的最简单方法。
var itemPrices = {
'1': { '1': 1000 },
'1': { '2': 1000 },
'1': { '3': 1100 },
'2': { '1': 900 },
'2': { '2': 900 },
'3': { '4': 2200 },
'3': { '5': 700 },
'4': { '1': 1200 },
'4': { '2': 1200 },
};
console.log(itemPrices['1']['1']); // Returns undefined because it's overwritten by `['1']['3']`.
我正在使用 PHP 生成此对象:
echo " var itemPrices = {\n";
foreach($_SESSION['item_prices'] as $item_price) {
$category_id = $item_price['categoryid'];
$type_id = $item_price['typeid'];
$price = $item_price['price'];
echo " '$category_id': { '$type_id': $price },\n";
}
echo " };\n";
请帮忙。
你不想要这样的结构吗?:
var itemPrices = {
1: {
1: 1000,
2: 2000,
3: 3000
},
2: {
1: 1000,
2: 2000
}
}
你可以达到同样的效果:
var itemPrices = {};
itemPrices[1] = {};
itemPrices[1][1] = 1000;
itemPrices[1][2] = 2000;
itemPrices[2] = {};
itemPrices[2][1] = 1000;
itemPrices[2][2] = 2000;
您需要使用合适的 JavaScript 对象。 https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Working_with_Objects
var itemPrices = {
'1': {
'1': 1000,
'2': 1000,
'3': 1100
},
'2': {
'1': 900,
'2': 900
},
'3': {
'4': 2200,
'5': 700
},
'4': {
'1': 1200,
'2': 1200
},
};
应该让你做
console.log(itemPrices['1']['1']);
您还需要稍微调整 PHP 脚本以使其正确输出!
JSFiddle:https://jsfiddle.net/f8kbca3h/
$data = array();
foreach($_SESSION['item_prices'] as $item_price) {
$category_id = $item_price['categoryid'];
$type_id = $item_price['typeid'];
$price = $item_price['price'];
if (!isset($data[$category_id]))
{
$data[$category_id] = array();
}
$data[$category_id][$type_id] = $price;
}
echo " var itemPrices = ".json_encode($data).";\n";
用 Google 搜索了最后几个小时,但找不到不编写任何函数或使用 map()
的方法。
我试图通过搜索前两个键找到在以下对象结构中获取 price
值的最简单方法。
var itemPrices = {
'1': { '1': 1000 },
'1': { '2': 1000 },
'1': { '3': 1100 },
'2': { '1': 900 },
'2': { '2': 900 },
'3': { '4': 2200 },
'3': { '5': 700 },
'4': { '1': 1200 },
'4': { '2': 1200 },
};
console.log(itemPrices['1']['1']); // Returns undefined because it's overwritten by `['1']['3']`.
我正在使用 PHP 生成此对象:
echo " var itemPrices = {\n";
foreach($_SESSION['item_prices'] as $item_price) {
$category_id = $item_price['categoryid'];
$type_id = $item_price['typeid'];
$price = $item_price['price'];
echo " '$category_id': { '$type_id': $price },\n";
}
echo " };\n";
请帮忙。
你不想要这样的结构吗?:
var itemPrices = {
1: {
1: 1000,
2: 2000,
3: 3000
},
2: {
1: 1000,
2: 2000
}
}
你可以达到同样的效果:
var itemPrices = {};
itemPrices[1] = {};
itemPrices[1][1] = 1000;
itemPrices[1][2] = 2000;
itemPrices[2] = {};
itemPrices[2][1] = 1000;
itemPrices[2][2] = 2000;
您需要使用合适的 JavaScript 对象。 https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Working_with_Objects
var itemPrices = {
'1': {
'1': 1000,
'2': 1000,
'3': 1100
},
'2': {
'1': 900,
'2': 900
},
'3': {
'4': 2200,
'5': 700
},
'4': {
'1': 1200,
'2': 1200
},
};
应该让你做
console.log(itemPrices['1']['1']);
您还需要稍微调整 PHP 脚本以使其正确输出!
JSFiddle:https://jsfiddle.net/f8kbca3h/
$data = array();
foreach($_SESSION['item_prices'] as $item_price) {
$category_id = $item_price['categoryid'];
$type_id = $item_price['typeid'];
$price = $item_price['price'];
if (!isset($data[$category_id]))
{
$data[$category_id] = array();
}
$data[$category_id][$type_id] = $price;
}
echo " var itemPrices = ".json_encode($data).";\n";