data
是object
。它包含一个parse
属性,它本身是一个object
,包含一个langLinks
属性,它是一个对象数组。
data.parse.langlinks.map(function(val){
return val['*'];
});
没关系,但我需要能够在外面阅读each
return val['*'];
,因为这是在
$.each(data, function(i, item) {
data.parse.langlinks.map(function(val){
return val['*'];
});
checkLocation();
所以,当我运行以下内容时,将无效。
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 :(得分:0)
我不太确定这个问题,但是:
window.someVariableName = []
var langLinks = _.get(data, 'parse.langLinks');
langLinks.forEach(function(langLink){
window.someVariableName.push(langLink)
})
假设您要通过迭代window.someVariableName
来设置全局data.parse.langLinks
。
此外:
parse
是一个属性的坏名称 - 它是一个动词,所以它听起来像一个函数或方法。
JS使用camelCase作为stdlib和大多数第三方代码。 TitleCase仅用于构造函数。
答案 1 :(得分: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);
}