【发布时间】:2015-05-30 22:50:11
【问题描述】:
我有一个这样的对象
obj = {
'ab-adf': 2,
'ab-d': 3,
'cd-23': 1,
'cd-df': 5,
'ef-a': 3,
'ef-nb': 4
};
预期的输出数字或字符串:来自每个 ab、cd 和 ef 组的 3、5、4。
我也在寻找像这样 ab-asdf=8, cd-ed=6 等打印出来的解决方案,它应该保留原始名称,后面有一个“=”符号。
我知道最传统的方法是使用循环并返回最大值。
var max = -Infinity, x;
for( x in obj) {
if( x.slice(0,2)==='ab' && obj[x] > max) max = obj[x];
if( x.slice(0,2)==='cd' && obj[x] > max) max = obj[x];
if( x.slice(0,2)==='ef' && obj[x] > max) max = obj[x];
//how to return max value from each group ?
}
【问题讨论】:
-
您想返回一个最大值数组吗?
-
首选数字或字符串
-
同一个对象中不能有两个同名的键,并且对象的键中不能有减号,除非该键在引号中。我不明白这是怎么可能的。
-
xxx = 不同的值。如此不同的键。是的,很明显,它们应该是引号..
-
那没问题。
标签: javascript loops object