递归:数组扁平化

 // 数组扁平化:将嵌套的数组转化为一维数组。
        function flattenArray(arr) {
            let result = [];

            for (const item of arr) {
                if (Array.isArray(item)) {
                    // concat 它用于将一个或多个字符串连接起来创建一个新的字符串。
                    result = result.concat(flattenArray(item));
                } else {
                    result.push(item);
                }
            }
            return result;
        }
        console.log(flattenArray([1, [2, [3, 41], 5], 6])); // 输出: [1, 2, 3, 4, 5, 6]

for…of

for…of 是 JS 中用于遍历可迭代对象(如数组、字符串、Map、Set 等)的一种循环语法。

参数一:指定的变量,用于存储每次迭代得到的元素的值。
参数二:可迭代的对象,如数组、字符串、Map、Set 等。

.concat()

.concat 是 JavaScript 字符串对象的方法之一,它用于将一个或多个字符串连接起来创建一个新的字符串。

语法:

str.concat(string2, string3, …, stringX)

参数说明:

string2, string3, …, stringX:要连接到原字符串的字符串值。

返回值:连接后的新字符串。

示例:

var str1 = 'Hello';
var str2 = 'World';

var result = str1.concat(', ', str2, '!');
console.log(result); // 输出: "Hello, World!"

在示例中,首先创建了两个字符串变量 str1 和 str2,分别保存了 “Hello” 和 “World”。然后,使用 .concat 方法将这两个字符串连接起来,并添加一些额外的字符串(", " 和 “!”),最终得到了 “Hello, World!”。

注意:与其他字符串操作方法(如 + 运算符)不同,.concat 方法不会改变原始字符串,而是返回一个新的字符串。因此,如果要保留连接后的结果,需要将其赋值给一个新的变量或字符串对象

.push()

.push() 用于将一个或多个元素添加到数组的末尾,并返回修改后的数组的新长度。

语法:

arr.push(element1, element2, …, elementX)

参数说明:

element1, element2, …, elementX:要添加到数组末尾的一个或多个元素。

返回值:修改后的数组的新长度。
示例:

var array = [1, 2, 3];
var length = array.push(4, 5);
console.log(array); // 输出: [1, 2, 3, 4, 5]
console.log(length); // 输出: 5

在示例中,首先创建了一个数组 array,包含了元素 [1, 2, 3]。然后使用 .push() 方法将两个元素 4 和 5 添加到数组末尾。.push() 方法修改了原始数组,将其变为 [1, 2, 3, 4, 5],并返回新数组的长度 5。

.push() 方法允许向数组中添加一个或多个元素,无论是单个值还是多个值,它们都将被依次追加到数组的末尾。

需要注意的是,.push() 方法会直接修改原始数组,如果不想改变原始数组,可以先创建原数组的副本进行操作,或者使用其他数组方法以不改变原始数组的方式添加元素。

补充一些其他递归实现:

  // 阶乘计算:计算一个正整数的阶乘。 5 × 4 × 3 × 2 × 1 = 120。
        function computeValue(n) {
            if (n === 0) {
                return 1
            }
            return n * computeValue(n - 1)
        }
        console.log(computeValue(5))

        // 斐波那契数列:生成斐波那契数列的前n项。
        function fibonacci(n) {
            if (n === 0) {
                return 0;
            }
            if (n === 1 || n === 2) {
                return 1;
            }
            return fibonacci(n - 1) + fibonacci(n - 2);
        }
        console.log(fibonacci(7)); // 输出: 13
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值