我正在敲打我的那个头部靠近墙壁...
我有以下代码:
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"参数有关.看起来它正在跳过后续数组每次拼接,但我无法完全修复我的大脑.
拜托,有人引导我吧:)
我正在尝试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_json是undefined.
不可否认,我对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_json是null.
当我将其作为变量粘贴到我的js文件中时,我在"gunsList.json"中引用数组的所有代码运行良好,但作为一个初出茅庐的程序员,我真的很高兴能够使用JSON.