在Javascript中,我试图获取数字值的初始数组并计算其中的元素。理想情况下,结果将是两个新数组,第一个数组指定每个唯一元素,第二个数组包含每个元素出现的次数。但是,我愿意接受有关输出格式的建议。
例如,如果初始数组为:
5, 5, 5, 2, 2, 2, 2, 2, 9, 4 然后将创建两个新的数组。第一个将包含每个唯一元素的名称:
5, 2, 9, 4 第二个将包含元素在初始数组中出现的次数:
3, 5, 1, 1 因为数字5在初始数组中出现3次,所以数字2出现5次,而9和4都出现一次。
我已经寻找了很多解决方案,但是似乎没有任何效果,而且我尝试过的所有事情都变得异常复杂。任何帮助,将不胜感激!
谢谢 :)
干得好:
function foo(arr) { var a = [], b = [], prev;
arr.sort();
for ( var i = 0; i < arr.length; i++ ) {
if ( arr[i] !== prev ) {
a.push(arr[i]);
b.push(1);
} else {
b[b.length-1]++;
}
prev = arr[i];
}
return [a, b];
} 现场演示: http : //jsfiddle.net/simevidas/bnACW/
注意 这将使用以下命令更改原始输入数组的顺序 Array.sort 问题来源于stack overflow
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。