2017-08-29 67 views
0
for (var i = 0, keys = Object.keys(map), ii = keys.length; i < ii; i++) { 
    console.log(keys[i] + '|' + map[keys[i]]); 
} 

我有地图,我想在下面的格式打印出来:如何在JavaScript中将哈希映射的值打印为字符串?

customer1|asdfasdf,asdfasdf,asdfa 
customer2|adf 
customer3|asdf,rthrg 
customer5|dfgbdf 
customer4|bfdgbfg,bdfgb,dfgb 
customer6|sdfgf 
customer7|xcvb,xvcbff 

相反,我得到这个。每个对象都包含我想要在上面打印的字符串列表。我怎样才能做到这一点?

customer1|[object Object] 
customer2|[object Object] 
customer3|[object Object] 
customer5|[object Object] 
customer4|[object Object] 
customer6|[object Object] 
customer7|[object Object] 
+0

你能提供所使用的地图,或例如地图具有相同的结构?没有它,很难指出问题。 – Thijs

回答

0

没关系。我找到了答案。我需要打印清单。

for (var i = 0, keys = Object.keys(map), ii = keys.length; i < ii; i++) { 
    console.log(keys[i] + '|' + map[keys[i]].list); 
} 
0

可以使这样的事情:

function printKeys(map){ 
 
\t for (var i = 0, keys = Object.keys(map), ii = keys.length; i < ii; i++) { 
 
\t \t val = map[keys[i]]; 
 
\t \t if(typeof val === 'object'){ 
 
\t \t \t printKeys(val); 
 
\t \t }else{ 
 
\t \t \t console.log(keys[i] + '|' + map[keys[i]]); 
 
\t \t } 
 
\t } 
 
} 
 

 
map = {a :1, b:2, c:3, d: {d1: 4}}; 
 
printKeys(map);

希望它能帮助!

0

尝试正常forEach循环,使用这种方式:

var cust = { 
 
    customer1: ["cus1Value1", "cus1Value2", "cus1Value3"], 
 
    customer2: ["cus2Value1", "cus2Value2", "cus2Value3", "cus3value4"], 
 
    customer3: ["cus3Value1", "cus3Value2"], 
 
    customer4: ["cus4Value1", "cus4Value2"], 
 
    customer5: ["cus5Value1", "cus5Value2"] 
 
}; 
 

 
var keys = Object.keys(cust); 
 
keys.forEach(key=>{ 
 
    console.log(key + '|' + cust[key]); 
 
});