Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用for循环检查id JSON键是否存在_Javascript_Arrays_Json_Loops_Ejs - Fatal编程技术网

Javascript 使用for循环检查id JSON键是否存在

Javascript 使用for循环检查id JSON键是否存在,javascript,arrays,json,loops,ejs,Javascript,Arrays,Json,Loops,Ejs,我试图遍历EJSON对象,检查这些值是否存在,如果存在,则将url进一步向下推到数组中 当我加载页面时,有人告诉我,count是未定义的。问题是什么?如何解决 var urlArray = []; var product = '<%= product %>'; console.log(product); var count; for (count = 1; count < 6 count++) {

我试图遍历EJSON对象,检查这些值是否存在,如果存在,则将url进一步向下推到数组中

当我加载页面时,有人告诉我,count是未定义的。问题是什么?如何解决

var urlArray = [];
        var product = '<%= product %>';
        console.log(product);
        var count;
        for (count = 1; count < 6 count++) {
            if (product.data["product.thumbgallery" + count] === undefined) {
                urlArray.push( <%- product.data['product.imageGallery' + count].value.main.url %>)
                }
            }
var urlArray=[];
var乘积=“”;
控制台日志(产品);
var计数;
用于(计数=1;计数<6计数++){
if(product.data[“product.thumbgallery”+计数]==未定义){
urlArray.push()
}
}

编辑:计数是个错误。我在遇到错误后更改了变量名

您的迭代器变量是count,但您正在for循环中迭代i。如果我没弄错的话,那不是伯爵吗

for (count = 1; count < 6; count++)
for(计数=1;计数<6;计数++)
我想应该是这样

For (int count; ....then the rest)
您声明了初始变量,以在循环外部启动continuation参数。这个简单的错误可能会导致编译器在执行循环的延续时无法将变量声明识别为合法


它可能不是这个特定错误的来源,但调试必须从某个地方开始

要检查
未定义
,应使用禁止抛出
未捕获引用错误
计数<6 i++
应为
计数<6;i++
计数是一个错误。在遇到错误后,我更改了变量名。好的,那么如果您已经解决了这个问题,问题是什么?您需要调用
JSON.parse(product)
,或者删除
中的引号。为什么在
.push()
中有一个
包装器?在if station下面的所有范围中,count仍然没有定义谢谢您的回答。int是一种数据类型,它使用在java或C++等低级语言中。Int表示不带小数的整数,而在javascript中,var包含任何数字加上字符串、对象、数组等。javascript由web浏览器动态解释,不像低级语言那样编译。较低级别意味着它更接近于二进制。@ques表示您可以使用任何您想要的数据类型。我用java、JS、C#和Python编程。在所有这些过程中,您都需要for循环内部的完整变量声明,以便continuation参数在每次传递时都有效。无论声明的类型如何,都必须在for循环中显式声明变量以完成更新,然后执行比较。
for循环头中的所有三个表达式都是可选的。例如,在初始化块中,不需要初始化变量:
所有变量要么在For循环内,要么在循环外完全声明。有一个部分声明的变量没有值,然后在尝试使用它的同时分配一个1。您发送的链接解释了相同的概念。在同一行上赋值,然后在循环中使用,或者在循环中完全声明变量。最明确的要求是在for循环之前或内部完全声明变量。我不想为这么简单的事争论。很抱歉,您认为我的反馈没有帮助。祝你好运,问题是我少了一个分号。在count>6和count++之间,我忘记了已经分配了ejs变量,并试图将其称为wish ejs wrappers。这里的范围适用于js。