问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

JS递归函数求[1,[2],[3,[4]]] 返回值为[1,2,3,4]

发布网友 发布时间:2022-04-23 17:11

我来回答

2个回答

懂视网 时间:2022-04-23 21:32

问题

我想将一个数组追加到另一个数组的后面,于是我在 firebug 编写如下代码:


[1,2] + [3,4]

但是,出乎意料,它却输出了:


"1,23,4"

而没有输出我期望的:


[1,2,3,4]

解答

JavaScript 的 + 运算符有两个目的:

  • 将两个数相加;

  • 将两个字符串连接。

  • 规范并没有定义 + 运算符在数组上的行为,所以javascript 首先 把数组转换成字符串,然后在字符串上进行 + 运算。

    如果想连接两个数组,可以使用数组的 concat 方法:


    [1, 2].concat([3, 4]) // [1, 2, 3, 4]

    javascript 中的 + 运算符概述

    JavaScript 具有 6 种内置数据类型: (译注:从给出的连接看,原作者的意思应该是 原始类型系统 的数据类型,JavaScript 事实上有两套类型系统。 第一套类型系统是用 typeof 来识别,称之为原始(primitive)类型系统,而第二套类型系统是以它为基础,从 object 这一种类型中发展起来的,即对象类型系统,对象类型系统用 instanceof 来识别。)

  • undefined

  • boolean

  • number

  • string

  • function

  • object

  • 需要注意的是,null [] 是两个截然不同的类型,当使用 typeof 运算时,它们却都返回 object。 但是在使用 + 运算符时,在这两种情况下的工作方式是不同的。

    在JavaScript 中,数组不是基本类型,它的存在仅仅是一个糖衣语法,它其实是 Array 类的实例。(ps:function 其实也是Function 类实例的糖衣语法。)

    如果说道现在你脑子还是清醒的,是时候加点儿猛料了。javascript 的对象包装器类型例如 new Number(5), new Boolean(true)new String("abc") 也都是 object 类型,它们不是数字,布尔,字符串。然而,对于算数运算符 Number Boolean 表现的为数字。

    还记得我前面说过的 + 运算符吗?它的操作对象是 数字和字符串,也就是 NumberBooleanString 或者 numberbooleanstring
    下面的表格就是 + 运算符对于不同类型进行运算后,得到的结果类型

    ----------------------------------------------------------------------------------------
      | undefined | boolean | number | string | function | object | null | array
    ----------------------------------------------------------------------------------------
    undefined | number | number | number | string | string | string | number | string
    boolean | number | number | number | string | string | string | number | string
    
    number | number | number | number | string | string | string | number | string
    
    string | string | string | string | string | string | string | string | string
    function | string | string | string | string | string | string | string | string
    
    object | string | string | string | string | string | string | string | string
    null | number | number | number | string | string | string | number | string
    
    array | string | string | string | string | string | string | string | string
    -------------------------------------------------------------------------------------------

    本表适用于 Chrome 13, Firefox 6, Opera 11 and IE9。课外作业:检查其他的浏览器兼容性。

    注意:用户自定义对象进行 + 运算不一定总产生一个字符串结果。这主要取决于 对象类型到原生类型转换 的实现方式。

    例如:

    var o = { 
     valueOf : function () { return 4; } 
    };

    计算 o + 2 将得到 6, 是一个数字 number;计算 o + '2' 得到 ‘42’, 是一个字符串 string。

    热心网友 时间:2022-04-23 18:40

    var yugi = function(arr, result) {
        for(var i=0;i<arr.length;i++){
            var tmp = arr[i];
            if(tmp.join){
                yugi(tmp, result);
            }else{
                result.push(tmp);
            }
        }
    }
    var result = [];
    yugi([1, [2], [3, [4]]], result);
    console.log(result);

    声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
    苹果电脑电池充不进电苹果电脑充不进去电是怎么回事 苹果电脑不充电没反应苹果电脑充电指示灯不亮充不了电怎么办 狗狗更加忠诚护家、善解人意,养一只宠物陪伴自己,泰迪能长多大... 描写泰迪狗的外形和特点的句子 国外留学有用吗 花钱出国留学有用吗 !这叫什么号 百万医疗赔付后是否可以续保 前一年理赔过医疗险还能续保吗? 医疗住院险理赔后还能购买吗? 求歌名 歌词中有一句是“不明白,还放不开你的爱”谁知道 滴滴打车20多公里是扣费还是什么 qq怎么去除qq小程序 家里菜园子出现一条蛇,请问是什么蛇,有毒吗,发现好几天了,地区陕西? 家里进蛇也不知道有没有毒,有什么说法吗 如何提高农村中小学教师普通话水平 热爱祖国语言文字 构建和谐语言生活征文 要快!!! 家里进蛇,这是什么蛇?有毒吗? 第三届全国教师语言文字基本功大赛试题的第2大题有答案吗? 老师叫我参加普通话大赛 3分钟讲一个小故事 第四届全国教师语言文字基本功大赛试题第四题答案 看家蛇有毒吗 第四届全国教师语言文字基本功大赛——作文 第二届全国语文教师语言文字基本功大赛 试题1 教师普通话比赛属于什么类别 走加且念什么 两个从一个且读什么 耳旁一个且读什么 左边一个山 ,右边一个且,是什么字啊?怎么读?谢谢 一个歹一个且读什么 这首歌名字叫什么,歌词里有:你的爱也不存在,我的爱也是空白 如果你的爱已经走远是什么歌 求一首歌歌名,歌词里面有“是我不再相信你的爱,还是你(我)不再......” 有首歌里的歌词有这么一句 是“你的爱” 是女生唱的 这首歌叫什么名字 谁唱的? 求一首歌名!歌词有句“花谢花开、春去秋来、我怕等不到你的爱” 电视机接口方式 宝马X5是两驱还是四驱? 求歌曲《你知道吗》。歌词有……你的爱何时再回来,不要再过去徘徊。无法再伪装,微笑着说爱你…… 全新长安欧尚X5到店实拍!轴距2710mm,提速7.79秒配蓝鲸1.5T 全聚德打包烤鸭在哪买 急求zbrush4.0下载地址。请提供一下!!! ZBrush 4R8中文版哪里有 提供最新版本zbrush4r7的下载渠道,以及安装方式 win11能下载zbrush吗 zbrush安装激活教程破解版中文(英文)下载,安装包在简介 土豆和苦笋烧肉会不会有毒 可以提供ZBrush 4R5注册补丁下载地址 请问萝卜鲫鱼汤可以和苦笋一起吃吗? 这竹子有毒吗? Zbrush3.0怎么安装?详细步骤