关于JavaScript中name不能作为数组变量名的问题

1.起因

var name = [
            {   lastName:'王',
                firstName:['王维','王安石','王羲之','王昭君']
            },
            {
                lastName:'张',
                firstName:['张飞','张学良','张良','张仲景']
            },
            {
                lastName:'李',
                firstName:['李白','李清照','李世民','李时珍']
            },
            {
                lastName:'董',
                firstName:['董仲舒','董存瑞','董卓','董和',]
            }
        ];
        var res = name.filter(function(item){
            if(item.lastName=="李")
                return item.firstName;
        });
        console.log(res);

今天在写老师布置的作业时发现的这个问题:
定义了一个储存了4个对象的数组,每个对象里面放的是姓氏及名字。
我想要取出所有姓李的所有的名字。这个代码逻辑上看上去没什么问题,但是当我运行的时候却报错了:
在这里插入图片描述

2.经过

name.filter is not a function

name里面没有这个函数???

看到这个错误当时我就懵了,数组里面怎么会没有filter函数呢??
于是我百度搜索了下"xxx.filter is not a function",

网上大多数xxx.filter is not a function的问题说的是xxx为字符串类型,调用filter就会报这个错误。

于是我就纳闷了,我明明定义的就是数组啊,难道写法有问题?
于是我做了个测试:

var name = [
            {   lastName:'王',
                firstName:['王维','王安石','王羲之','王昭君']
            },
            {
                lastName:'张',
                firstName:['张飞','张学良','张良','张仲景']
            },
            {
                lastName:'李',
                firstName:['李白','李清照','李世民','李时珍']
            },
            {
                lastName:'董',
                firstName:['董仲舒','董存瑞','董卓','董和',]
            }
        ];
var arr = [{},{},{},{}];
console.log(Array.isArray(name));
console.log(Array.isArray(arr));

运行结果:
在这里插入图片描述name不是数组类型,arr是数组类型

3.结果

查资料得知:

“name”是当前窗体:window对象的属性;

写下这篇博客以记录学习js所踩过的坑,以后命名需注意。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值