huiru2000 2021-05-09 18:18 采纳率: 71.4%
浏览 40
已采纳

JS提问,请问怎样提取一个类数组的所有数字?

就是下面这样一个类数组,我要怎样才能提取里面所有的数字呢?

var arr =[1,2,3,{},[5,6],{},"abc" ,true, [{}, {name:20}]]

  • 写回答

2条回答 默认 最新

  • Go 旅城通票 2021-05-09 18:29
    关注
    <script>
        var arr = [1, 2, 3, {}, [5, 6], {}, "abc", true, [{}, { name: 20 }]]
    
        function type(obj) {
            var o = {};
            if (o.toString.call(obj) == '[object Object]') return 1;
            if (o.toString.call(obj) == '[object Array]') return 2;
            return 0;
        }
    
        var arrNum = [];
        function getNumber(o) {
            console.log(typeof o)
            var typename = typeof (o);
            if (typename == 'object') {
                var t = type(o);
                if (t) {
                    if (t == 1) for (var attr in o) getNumber(o[attr]);
                    else for (var v of o) getNumber(v);
                }
            }
            else if (typename == 'number') arrNum.push(o);
        }
        getNumber(arr);
        alert(arrNum.join('\n'))
    </script>
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 微信小程序协议怎么写
  • ¥15 c语言怎么用printf(“\b \b”)与getch()实现黑框里写入与删除?
  • ¥20 怎么用dlib库的算法识别小麦病虫害
  • ¥15 华为ensp模拟器中S5700交换机在配置过程中老是反复重启
  • ¥15 java写代码遇到问题,求帮助
  • ¥15 uniapp uview http 如何实现统一的请求异常信息提示?
  • ¥15 有了解d3和topogram.js库的吗?有偿请教
  • ¥100 任意维数的K均值聚类
  • ¥15 stamps做sbas-insar,时序沉降图怎么画
  • ¥15 买了个传感器,根据商家发的代码和步骤使用但是代码报错了不会改,有没有人可以看看