当前位置 : 主页 > 编程语言 > java >

reduce计算数组中每个元素出现的次数 数组去重的几种方式 将多维数组转化

来源:互联网 收集:自由互联 发布时间:2022-09-02
// js计算数组中每个元素出现的次数 // var names = ['Alice', 'Bob', 'Tiff', 'Bruce', 'Alice']; // var countedNames = names.reduce(function (allNames, name) { // if (name in allNames) { // allNames[name]++; // } // else { // allN
// js计算数组中每个元素出现的次数
// var names = ['Alice', 'Bob', 'Tiff', 'Bruce', 'Alice'];

// var countedNames = names.reduce(function (allNames, name) {
// if (name in allNames) {
// allNames[name]++;
// }
// else {
// allNames[name] = 1;
// }
// return allNames;
// }, {});
// console.log(countedNames) //{Alice: 2, Bob: 1, Tiff: 1, Bruce: 1}


// 数组去重 Set 和 reduce 和 for循环

      //    var arr=[1,2,23,23,4,5,5];

        //    var newarr=new Set(arr); //去重

        //    console.log([...newarr]);//将伪数组转化为真实的数组 //(5) [1, 2, 23, 4, 5]

// let arr = [1,2,3,4,4,1]
// let newArr = arr.reduce((pre,cur)=>{
// if(!pre.includes(cur)){
// return pre.concat(cur)
// }else{
// return pre
// }
// },[])
// console.log(newArr);// [1, 2, 3, 4]


//将多维数组转化为一维
let arr = [[0, 1], [2, 3], [4,[5,6,7]]]
const newArr = function(arr){
return arr.reduce((pre,cur)=>pre.concat(Array.isArray(cur)?newArr(cur):cur),[])
}
console.log(newArr(arr)); //[0, 1, 2, 3, 4, 5, 6, 7]

 

// array.reduce(function (total, currentValue, currentIndex, arr), initialValue)

// 参数 描述
// total 必需。初始值, 或者计算结束后的返回值。
// currentValue 必需。当前元素被循环的元素
// currentIndex 可选。当前元素被循环的元素的索引
// arr 可选。当前元素所属的数组对象。


var arr = [1, 2, 3, 4];
var sum = arr.reduce(function(prev, cur, index, arr) {
console.log(prev, cur, index);
return prev + cur;
})
console.log(arr, sum);
// 打印结果:
// 1 2 1
// 3 3 2
// 6 4 3
// [1, 2, 3, 4] 10

// 分析:第一次的prev 是初始值为1 ,以后的prev为返回值
// cur 当前元素被循环的元素,是下标为1的那个元素
// index当前元素被循环的元素的索引

 

遇见问题,这是你成长的机会,如果你能够解决,这就是收获。


作者:​​晚来南风晚相识​​​

本文版权归作者所有,欢迎转载,未经作者同意须保留此段声明,在文章页面明显位置给出原文连接

如果文中有什么错误,欢迎指出。以免更多的人被误导。


上一篇:v-for动态添加表单,并且获取表单中的值
下一篇:没有了
网友评论