对数组值进行分组
Grouping array values
本文关键字:数组 更新时间:2023-09-26
我有一个已经排序的数组。假设我的排序数组是
[60 , 60 ,60, 56 , 56 ,45 , 33 , 12, 10]
我想用javascript
把这个数组放到这个形式的对象中 {first : [60 ,60 ,60] , second : [56 ,56] , third : [33]}
请任何帮助将不胜感激。由于
您可以使用嵌套的方法使用两个循环,一个用于所需的键,另一个用于包含数字的数组的长度。
var numbers = [60, 60, 60, 56, 56, 45, 33, 12, 10],
object = {},
i = 0; j = 0,
keys = ['first', 'second', 'third'],
last = numbers[0];
while (i < keys.length) {
object[keys[i]] = object[keys[i]] || [];
while (j < numbers.length && numbers[j] === last) {
object[keys[i]].push(numbers[j]);
j++;
}
last = numbers[j];
i++;
}
console.log(object);
风格更紧凑的提案。
function groupByTop(items, object) {
var last = numbers[0]
j = 0;
return function (k) {
object[k] = object[k] || [];
while (j < items.length && items[j] === last) {
object[k].push(items[j]);
j++;
}
last = items[j];
};
}
var numbers = [60, 60, 60, 56, 56, 45, 33, 12, 10],
result = {};
['first', 'second', 'third'].forEach(groupByTop(numbers, result));
console.log(result);
相关文章:
- 如何在映射数组中添加换行符
- javascript结合了数组和字典
- 需要帮助设置json数组
- 不能从angular2中的子组件指定父组件中的数组
- 使用JS将数组转换为json对象
- 数组在递归方法中设置为null
- knockoutjs可观察数组
- Javascript-如何读取json文件中的列并将其保存在Javascript数组中
- 将数组从PHP传递到Javascript
- JavaScript数组排序(函数)用于对表行进行排序,而不是排序
- 在函数中添加数组元素的数值
- 无法通过数组映射绑定
- javascript中的数组出错
- 如何使用 node.js 比较两个 json 数组
- Javascript(Angular)从一个对象数组到第二个数组查找值
- 根据id将json数组组合为一个json数组
- 如何通过数组更新角度子范围
- 有没有一种方法可以添加相同的项目val=“0”;4〃;到JavaScript中数组的每个对象
- 在Javascript中转换对象数组
- Javascript,有没有一种方法可以将数组写成没有逗号或空格的单个文本字符串