相关疑难解决方法(0)

如何检查对象是否是数组?

我正在尝试编写一个接受字符串列表或单个字符串的函数.如果它是一个字符串,那么我想将它转换为只有一个项目的数组.然后我可以循环它而不用担心错误.

那么我该如何检查变量是否是一个数组?


我已经完成了下面的各种解决方案,并创建了一个jsperf测试.

javascript arrays javascript-objects

2581
推荐指数
27
解决办法
144万
查看次数

数组的长度属性如何在javascript中工作?

在javascript中可以直接设置length数组的属性.例如,我可以像这样缩短数组:

var arr = [1, 2, 3, 4];
arr.length = 2;
console.log(arr); // Array [ 1, 2 ]
// arr[2], arr[3] are deleted
Run Code Online (Sandbox Code Playgroud)

我希望它length是只读的(例如在java中).

据我所知,javascript中的数组也是一个对象:

console.log(typeof [1, 2, 3]); // object
Run Code Online (Sandbox Code Playgroud)

length物业如何在引擎盖下工作?

javascript arrays

8
推荐指数
1
解决办法
941
查看次数

为什么 console.log() 显示一个数组,但 typeof 返回“object”?

这与 mongoose find() 操作的结果有关。代码

console.log('apparently this is an ' + typeof campaign.advertGroups, campaign.advertGroups);

导致以下输出:

apparently this is an object [ { adverts: [ [Object], [Object], [Object] ] } ]

campaign.advertGroups尽管它是 Mongo 集合中的数组,但它的行为不像数组(即 length 属性未定义等)。

有人能解释一下吗?这感觉太愚蠢了,我一定错过了一些非常非常明显的东西。

javascript mongoose mongodb node.js

5
推荐指数
2
解决办法
2266
查看次数

类型的东西返回对象而不是数组

x 是一个数组。

console.log(x)知道了

[ 'value' ]
Run Code Online (Sandbox Code Playgroud)

但是当我检查x的类型console.log(typeof x)时说它是一个对象。为什么?

javascript jquery

5
推荐指数
2
解决办法
484
查看次数

Javascript 数组初始化为一个对象

我只是在这段代码上扯掉我的头发!我必须遗漏一些明显的东西。我声明了一个数组,它的类型返回“对象!”

代码如下:

var markers = new Array();
console.log(typeof markers);
d3.json(queryUrl, function(data) {
    console.log(data.features)
    data.features.forEach( function(each) {
        let ball = each["geometry"]["coordinates"]
        console.log(typeof markers)
        markers.push(
            L.marker([ball[1], ball[0]])
            .bindPopup(`Magnitude: ${each["properties"]["mag"]}`);
        )
    });
});

markers = L.layerGroup(markers);
Run Code Online (Sandbox Code Playgroud)

在两者中console.log(typeof),它们都返回对象,并且该markers.push()行引发错误(这是首先提示检查类型的原因)

我的第一个下意识反应是最后一行是罪魁祸首,但我将第一行改为var test = new Array();,它做了同样的事情

javascript arrays types d3.js leaflet

5
推荐指数
0
解决办法
128
查看次数