java循环遍历, reduce(),reduceRight()方法和Object,keys遍历对象的属性

BSO 2020-10-14 16:10:34 java常见问答 7737

最近几年,随着高新技术的不断出现,各种编程软件也开始进入到人们的视野当中。今天就来为大家说一下java编程语言的基础知识,也就是java循环遍历, reduce(),reduceRight()方法和Object,keys遍历对象的属性,一起来看看吧。

首先说一下reduce(),reduceRight()方法。

reduce方法和reduceRight方法依次处理数组的每个成员,最终累计为一个值。它们的差别是,reduce是从左到右处理(从第一个成员到最后一个成员),reduceRight则是从右到左(从最后一个成员到第一个成员),其他完全一样。代码展示如下:

[1, 2, 3, 4, 5].reduce(function (a, b)
{
    console.log(a, b);
    return a + b;
})
// 1 2
// 3 3
// 6 4
// 10 5
//最后结果:15

reduce方法和reduceRight方法的第一个参数都是一个函数。该函数接受以下四个参数。

1. 累积变量,默认为数组的第一个成员

2. 当前变量,默认为数组的第二个成员

3. 当前位置(从0开始)

4. 原数组

这四个参数之中,只有前两个是必须的,后两个则是可选的。

如果要对累积变量指定初值,可以把它放在reduce方法和reduceRight方法的第二个参数。代码展示如下:

[1, 2, 3, 4, 5].reduce(function (a, b)
{
    return a + b;
}, 10);
// 25

上面的第二个参数相当于设定了默认值,处理空数组时尤其有用,可避免一些空指针异常。

由于这两个方法会遍历数组,所以实际上还可以用来做一些遍历相关的操作。比如,找出字符长度最长的数组成员。代码展示如下:

function findLongest(entries)
{
    return entries.reduce(function (longest, entry)
    {
        return entry.length > longest.length ? entry : longest;
    }, '');
}
findLongest(['aaa', 'bb', 'c']) // "aaa"

上面代码中,reduce的参数函数会将字符长度较长的那个数组成员,作为累积值。这导致遍历所有成员之后,累积值就是字符长度最长的那个成员。

然后为大家介绍一下Object,keys遍历对象的属性

Object.keys方法的参数是一个对象,返回一个数组。该数组的成员都是该对象自身的(而不是继承的)所有属性名,且只返回可枚举的属性。代码展示如下:

var obj = {
    p1: 123
    , p2: 456
};
Object.keys(obj) // ["p1", "p2"]

以上就是关于java循环遍历, reduce(),reduceRight()方法和Object,keys遍历对象的属性的主要内容了。java循环遍历知识还是比较重要的。如果你对java知识感兴趣,想要了解更多java实例,敬请关注奇Q工具网。

推荐阅读:

java中filter()过滤循环和while循环,实例分享

java中增强for…in循环,实例代码分享

java数组循环怎么做?数组拷贝是什么意思?