【发布时间】:2014-04-01 09:30:17
【问题描述】:
我擅长 php,但 javascript 不适合我,我的英语也不是很好,但我会一步一步慢慢地解释一切。 我使用javascript计算电信服务的费用。我知道必须使用与 in php 类似的逻辑,但后来我卡住了。
/prices is json from server as see below.
var prices = [{"brand":"Airtel (Waridtel) Ug","numbering":"25670","price":"40"},
{"brand":"UTL ug","numbering":"25671","price":"30"},
{"brand":"Airtel Ug","numbering":"25675","price":"40"},
{"brand":"MTN Ug","numbering":"25677","price":"20"},
{"brand":"MTN Ug","numbering":"25678","price":"20"},
{"brand":"Orange Ug","numbering":"25679","price":"30"},
{"brand":"Safaricom Ke","numbering":"25470","price":"30"},
{"brand":"Safaricom Ke","numbering":"25471","price":"30"}]
用户以逗号分隔字符串提供各种电话号码
//contacts
cdest = '245772306640,256754306640,25471624525,2567825689754,2563989654285,4588623566', 256782658974;
我们使用品牌前缀来查找品牌。 如果contacts前缀相当于json中的价格编号,那么就是该品牌拥有的conctact。我根据用户提供的联系人列表计算每个品牌的联系人数量和总成本。
预期输出如下所示。 品牌(联系人数量)::总成本 示例 MTN Ug(3)::60 , Airtel Ug(1), Safaricom Ke(1)::30,
我也喜欢将任何没有品牌的号码放在一个通用品牌下,称为国际,没有价格分配,如下例所示 国际(2)::默认,
这里我对两个循环很困惑,我不明白我如何循环、计数和回显,但我擅长传递 php 知识到目前为止我创建了双循环,但后来我又混淆了。
//explode numbers;
dest = cdest.split(",");
// loop through brands and numbers.
//plan is to create create array like (brand1 =>countbrand1,brand2=>countbrand3, etc)
cd = Array();
for( var i=0; i<dest.length; i++ )
{
$x.each(prices, function(index, m) {
if(dest[i].indexOf(m.numbering)==0)
{
cd[m.brand]+=1;
} else
cd[International]+=1;
});
}
在 php 中,我现在只需在 cd 上循环并获取输出。我尝试使用 js,但不知道如何在 Javascript 中回显数组的键。 javascript 整天欺负我。如果你回答得好,请你一步一步慢慢展示。非常感谢。
【问题讨论】:
标签: javascript arrays multidimensional-array echo