2017-01-04 10 views
-5

私の配列の最後の要素を取得するために.pop()関数を使用しようとしています(それは私のWebページに表示されます)。私は 配列の最後の要素を取得するJavaScriptが関数ではありません

var notif_count = data.pop(); 

が、私はエラーを取得する... Javascriptを/ jQueryの私はこれで少し苦労してるとかなり新しいです:

マイデータ「キャッチされない例外TypeError data.popは関数ではありません」コンソールでは多次元配列のように見えますが、わかりません。

EDIT 2 - 出力はここに示す文字を含む文字列です。

[ 
    [ 
    { 
     "_can_chaccess": true, 
     "_can_chown": true, 
     "_can_delete": true, 
     "_can_modify": true, 
     "_can_read": true, 
     "created_at": "Wed Jan 04 17:33:13 UTC 2017", 
     "created_by": 25206, 
     "created_by_user[login_name]": "[email protected]", 
     "created_by_user[person_name]": "Jamie Lowe", 
     "created_through": "Workbooks", 
     "created_through_reference": "", 
     "id": 117662, 
     "imported": false, 
     "key": "notifications", 
     "key10": "", 
     "key11": "", 
     "key12": "", 
     "key13": "", 
     "key14": "", 
     "key15": "", 
     "key16": "", 
     "key17": "", 
     "key18": "", 
     "key19": "", 
     "key2": "292801", 
     "key3": "47930", 
     "key4": "CASE-32109", 
     "key5": "", 
     "key6": "", 
     "key7": "", 
     "key8": "", 
     "key9": "", 
     "lock_version": 0, 
     "owner[login_name]": "[email protected]", 
     "owner[person_name]": "Jamie Lowe", 
     "owner_id": 25206, 
     "type": "Private::Automation::ApiData", 
     "updated_at": "Wed Jan 04 17:33:13 UTC 2017", 
     "updated_by": 25206, 
     "updated_by_user[login_name]": "[email protected]", 
     "updated_by_user[person_name]": "Jamie Lowe", 
     "value": "" 
    }, 
    { 
     "_can_chaccess": true, 
     "_can_chown": true, 
     "_can_delete": true, 
     "_can_modify": true, 
     "_can_read": true, 
     "created_at": "Wed Jan 04 17:23:21 UTC 2017", 
     "created_by": 25206, 
     "created_by_user[login_name]": "[email protected]", 
     "created_by_user[person_name]": "Jamie Lowe", 
     "created_through": "Workbooks", 
     "created_through_reference": "", 
     "id": 117660, 
     "imported": false, 
     "key": "notifications", 
     "key10": "", 
     "key11": "", 
     "key12": "", 
     "key13": "", 
     "key14": "", 
     "key15": "", 
     "key16": "", 
     "key17": "", 
     "key18": "", 
     "key19": "", 
     "key2": "292801", 
     "key3": "47930", 
     "key4": "CASE-32106", 
     "key5": "", 
     "key6": "", 
     "key7": "", 
     "key8": "", 
     "key9": "", 
     "lock_version": 2, 
     "owner[login_name]": "[email protected]", 
     "owner[person_name]": "Jamie Lowe", 
     "owner_id": 25206, 
     "type": "Private::Automation::ApiData", 
     "updated_at": "Wed Jan 04 17:30:39 UTC 2017", 
     "updated_by": 25206, 
     "updated_by_user[login_name]": "[email protected]", 
     "updated_by_user[person_name]": "Jamie Lowe", 
     "value": "" 
    } 
    ], 
    2 
] 

は基本的に私は]右閉じる前に、アレイの端に数2を取得しようとしている - 私はそれをどのように行うのですか?

EDIT:完全なコード例

var notif_count = data[1]; <!-- Last element in the array which is the count of notifications calculated server side by PHP -->     
       console.log(notif_count);      
       $('#count').text(notif_count); 
+1

[再現することはできません](http://imgs.xkcd.com/comics/cnr.png )(クロム、FF)。 – ASDFGerte

+1

私はそのアレイを私のコンソールに貼り付け、 '.pop()'をうまく呼びました。 'pop 'を呼び出すために使用しているコードを表示してください – Michael

+0

ここに - [例](http://jsbin.com/kotadanigo/edit?js,console) –

答えて

0

使用配列のインデックス。 JS内の配列の詳細については、MDNを参照してください。あなたの問題のために

、これは私のために

var notif_count = data[1] 
//index 1 will give 2nd element, as array indexing is zero indexing. 

そしてvar notif_count = data.pop();作品をワーク・でしょう。 FFコンソールでチェック。違いのない同じ例。

JSON文字列の改行文字に注意してください。

0

あなたがコメントで与えたフィードバックに基づいて編集されました。あなたが最初のリストの中に文字列を変換するためにJSON.parseを使用する必要があり、その後、インデックスでは、最終的な項目を選択します。

var data = '["a","b","c"]'; 
data_2 = JSON.parse(data) 
var notif_count = data_2[data_2.length-1]; 
console.log(notif_count) --> 'c' 
console.log(data_2) --> ['a','b','c'] 
+0

残念ながら、これは私のためには機能しません...おそらく配列のように見えるアウトプットを使っていると思います。実際は文字列です。どのように配列に変換するのですか? –

+0

上記のコメントを参照するには、文字列の最初にJSON.parse()を使用します。 – oli5679

関連する問題