小编Rem*_*ams的帖子

使用for循环(javascript)从多维数组中删除元素时遇到问题

我正在敲打我的那个头部靠近墙壁...

我有以下代码:

var guns2 = 
[
["Model 17", "Glock"],
["Model 19", "Glock"],
["PPQ", "Walther"],
["P2000", "HK"],
["Model 92", "Beretta"],
["Model 34", "Glock"]
]

var gunsMake = function () {
    for (i=0; i<guns2.length; i++){
        var make = guns2[i][1];
            if (make ==="Glock"){
                }
            else {
                guns2.splice(i,1);
                }
        };
    };
gunsMake();
console.log(guns2);
Run Code Online (Sandbox Code Playgroud)

我在控制台中得到的结果如下:

[["Model 17", "Glock"], ["Model 19", "Glock"], ["P2000", "HK"], ["Model 34", "Glock"]]
Run Code Online (Sandbox Code Playgroud)

我想看到的是:

[["Model 17", "Glock"], ["Model 19", "Glock"], ["Model 34", "Glock"]]
Run Code Online (Sandbox Code Playgroud)

"["P2000","HK"]" 不应该在那里......我感觉它与for循环中的"guns2.length"参数有关.看起来它正在跳过后续数组每次拼接,但我无法完全修复我的大脑.

拜托,有人引导我吧:)

javascript multidimensional-array splice

2
推荐指数
1
解决办法
6310
查看次数

从本地JSON文件加载后,javascript变量为'null'或'undefined'

我正在尝试my_jason从JSON文件"gunsList.json"的内容创建一个javascript变量(两者都存储在我的机器上的同一文件夹中).

我似乎遇到了OP在这篇文章中遇到的同样的问题,当他纠正了他有缺陷的JSON文件时解决了这个问题.认为我有同样的问题,我通过JSONLint运行我的文件(我假设这是正确的验证),它回来了干净.

借用这篇文章中的提示,我尝试使用jQuery来完成它(注意:我在现有代码的其他部分成功使用了jQuery),如下所示:

var my_json;
$.getJSON('gunList.json', function(json) {
my_json = json;
});
Run Code Online (Sandbox Code Playgroud)

当我尝试上面的方法(例如alert(my_json))时,my_jsonundefined.

不可否认,我对AJAX知之甚少,但我也尝试过:

var my_json = (function () {
    var my_json = null;
    $.ajax({
        'async': false,
        'global': false,
        'url': 'gunsList.json',
        'dataType': "json",
        'success': function (data) {
            my_json = data;
        }
    });
    return my_json;
})(); 
Run Code Online (Sandbox Code Playgroud)

在上面的例子中,my_jsonnull.

当我将其作为变量粘贴到我的js文件中时,我在"gunsList.json"中引用数组的所有代码运行良好,但作为一个初出茅庐的程序员,我真的很高兴能够使用JSON.

javascript jquery json

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