2017-08-14 40 views
3

我有推送給數組的json數據。我需要獲取某個ID值的索引值。我試過IndexOf,但它似乎沒有工作。獲取JSON對象的某個值的索引

我附上了我的代碼和數組的片段。隨同指向JSON文件的鏈接供您使用。

我已添加註釋以突出顯示問題區域。我還發送了數組的屏幕截圖,其中包括console.logged和我需要獲取的值。

var posts; 
 
var imgTitle; 
 
var imgLink; 
 
var url = 'http://www.capetownetc.com/api/get_category_posts/?slug='; 
 
var counter = 1; 
 
var postID; 
 
var callFunction = true; 
 
var articleContent; 
 
var titleMaxLength = 28; 
 
var articleArray = []; 
 
var topicName = 'news'; 
 
var pageNumber; 
 
var linkID; 
 

 
//POST CARDS 
 

 
function postCards(pageNumber, cardLimit, container, topic) { 
 

 
    topicName = topic || 'news'; 
 
    pageNumber = pageNumber || 1; 
 
    
 
    $.ajax({ 
 
     type: 'GET' 
 
     , url: url + topicName + '&count=10&page=' + pageNumber 
 
     , data: { 
 
      get_param: 'value' 
 
     } 
 
     , dataType: 'jsonp' 
 
     , success: function postPop(data) { 
 
      $('.main-content').append('<div class="card-container card-container' + container + '"></div>'); 
 
      $.each(data.posts, function(i){ 
 
      
 
       posts = data.posts[i]; 
 
       imgTitle = data.posts[i].title; 
 
       imgLink = data.posts[i].thumbnail_images.medium.url; 
 
       imgTitle = imgTitle.substr(0, titleMaxLength); 
 
       postID = data.posts[i].id; 
 
       
 
       $('.card-container' + container).append('<a href="' + postID + '" class="article-link" onclick="postArticle(' + i + ',' + pageNumber +')"><div class="card card1"><img src="' + imgLink + '" class="card-img"><span><h2 class="card-heading">' + imgTitle + '</h2></span></div></a>'); 
 
       
 
       $('#loading').css('opacity' , '0'); 
 
       
 
       callFunction = true; 
 
       
 
       //JSON CONTENT TO ARRAY 
 
       articleArray.push(posts); 
 
       //**PROBLEM AREA - I need to get the ID position of the posts in this array, see screenshot - 
 
       if(window.location.hash) { 
 
       
 
        mainView.router.load({ 
 
         content: newPageContent, 
 
         animatePages: true 
 
        }); 
 

 
        articleContent = articleArray[i].content; 
 

 
        $('.article-container').html(articleContent); 
 
        console.log('hash'); 
 
       } 
 
       else { 
 
        
 
       } 
 

 
      }); 
 
      console.log(articleArray); 
 
     } 
 
     
 
     }).done(function(){ 
 
      myApp.hidePreloader(); 
 
     }); 
 
     myApp.showPreloader(); 
 
} 
 

 
postCards(counter, 10, counter);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script> 
 
          
 
          <div class="main-content"> 
 

 
          </div>

JSON Data File

The value which position I need to get

+1

所以,你想要剛剛推入一個數組的項目的索引?那麼檢查該數組的長度屬性... – CBroe

回答

2
如果你想獲得由ID特定項目的索引那麼首先

您必須通過ID來獲得該項目的對象下面,然後你可以使用indexOf來獲取該特定項目的索引。

var item = yourArray.find(function (e) { 
         if (e.id == "your Id") { 
          return e; 
         } 
        }); 

var index = yourArray.indexOf(item);