2017-08-14 19 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); 
関連する問題