2017-08-03 11 views
0

dataは、objectです。 parseプロパティが含まれ、それ自体がobjectで、オブジェクトの配列であるlangLinksプロパティが含まれています。配列オブジェクトからグローバル変数を外部にアクセスするにはどうすればよいですか?

data.parse.langlinks.map(function(val){ 
    return val['*']; 
}); 

それは素晴らしいですが、これは

$.each(data, function(i, item) { 
    data.parse.langlinks.map(function(val){ 
    return val['*']; 
    }); 
    checkLocation(); 

内で読み取られるように私は、私はその後、次のことを実行するときに、動作しません外eachreturn val['*'];を読むことができるようにする必要があります。

function checkLocation() { 
spacetime[counter].Article.Language.langPrefix.push(val['*']); 

ここpushにそれをしよう:

  spacetime.push({ 
       Article : { 
        Title : [], 
        Space : [], 
        Time: { 
         days : [], 
         months : [], 
         years : [], 
         suffixes : [] 
        }, 
        Language : { 
         TitleLang: [], 
         articleLangId : [], 
         langPrefix : [], 
         langName : [], 
         langLink : [] 
        } 
       } 
      }); 

を配列は、コンソールでの出力になります。

console.log(data.parse.langlinks.map(function(val){ return val["*"] })); 
Array(6) 
    "Batalla de Tabarsi" 
    "Battle of Fort Tabarsi" 
    "Batalo de Tabarsi" 
    "Batalla del Fuerte de Tabarsí" 
    "جنگ قلعه طبرسی" 
"Bataille de Shaykh Tabarsi" 
+0

私はそれぞれ返されたval ['*'] ;;という意味は分かりません。すべてのlangLinkを取得したいだけですか? – mikemaccana

+0

@mikemaccanaは質問を基本的に更新しましたが、基本的にそれぞれの結果は外部からアクセスする必要がありますが、 'item'のプロパティ自体は'配列 'です –

+0

なぜ' $ each'を使ってループしているのですか?同じ変数 'data'にマップされます。 – Priya

答えて

0

を私は質問のかなりわからないんだけど、:

window.someVariableName = [] 
var langLinks = _.get(data, 'parse.langLinks'); 
langLinks.forEach(function(langLink){ 
    window.someVariableName.push(langLink) 
}) 

設定すると仮定しますグローバルwindow.someVariableNameを反復してdata.parse.langLinksにします。また

  • parseは、プロパティの悪い名前である - それは、関数やメソッドのように聞こえるので、それは動詞です。

  • JSでは、stdlibとほとんどのサードパーティコードでcamelCaseを使用しています。 TitleCaseはコンストラクタでのみ使用されます。

+0

は 'Uncaught ReferenceError:_が定義されていません'を返します。 –

+0

okが動作し、 'var { });; \t \t \t \t langLinks.forEach(関数(langLink){ \t \t \t \t \t someVariableName.push(langLink); \t \t \t \t}) ' –

+0

_ lodashであるか、または、最も一般的なJSライブラリを強調する。 – mikemaccana

0

mapデータ自体は変更されますと、それはreturnで任意のグローバル値を格納文句を言わないような方法は間違った方法で使用されています。

$.each(data, function(i, item) { 
    var value = item.parse.langlinks.map(function(val){ 
     return val['*']; 
    }); 

    checkLocation(value, i); 
}); 

function checkLocation(value, counter) { 
    spacetime[counter].Article.Language.langPrefix.push(value); 
} 
+1

'val ['*']'& 'counter'はどこにあるのか、どういう仕組みかわかりません。 – Priya

+0

これは期待しています –

+0

'langlinks'データ全体をプッシュしたい場合は、LHS割り当てを追加し、' checkLocation'メソッドにプッシュする必要があります。 – Priya

関連する問題