如何检查数组索引

时间:2017-11-14 06:28:12

标签: javascript jquery

我在jquery中有以下代码

var newFeeds = [];
$(data.d).each(function () {
  newFeeds.push({
    content: this.Name,                               
    id: this.Id
  });        
});

我能够从newFeeds[0].content, newFeeds[1].content, newFeeds[2].content访问值,但是当我尝试时  访问newFeeds[3].content显示未定义的错误并检查typeof equals(===) undefined,但显示Uncaught TypeError: Cannot read property 'content' of undefined错误。我该如何避免这个错误。我在数组中只有3个元素。在Jquery中有没有办法避免这个错误,或者我可以设置非存在索引中不可用的值吗?

4 个答案:

答案 0 :(得分:0)

您可以这样做:

var newFeeds = [];
$(data.d).each(function (val) {
    if(val !== undefined) {
        newFeeds.push({
            content: val,
        });
    }
});

答案 1 :(得分:0)

 i=0
 while(i <= newsFeed.length)
   if (newFeeds[i])
      //Your code goes here
   else
      i++

尝试上面的操作。

答案 2 :(得分:0)

  

我可以从newFeeds [0] .content访问值,   newFeeds [1] .content,newFeeds [2] .content但是当我试图访问时   newFeeds [3] .content显示未定义的错误并检查typeof   equals(===)undefined但显示Uncaught TypeError:无法读取   财产&#39;内容&#39;未定义的错误。我该如何避免这个错误。一世   数组中只有3个元素。在Jquery中有没有办法避免   此错误或我可以设置非存在索引中不可用的值吗?

使用exports以下是示例

检查undefined-ness不是测试密钥是否存在的准确方法。如果密钥存在但值实际上未定义怎么办?

(index_key in your_array)

&#13;
&#13;
"key" in your_object_or_array // true, regardless of the actual value
&#13;
&#13;
&#13;

答案 3 :(得分:0)

我这样做了

 for (i = 0; i < 14;i++)
     {
        if (typeof newFeeds[i] !== undefined)
              {
                newFeeds.push({
                content: 'NA',
                id: 0
                             });

                 }

      }