gpt4 book ai didi

javascript - 返回对象在第二次迭代时返回未定义

转载 作者:行者123 更新时间:2023-11-28 20:44:59 24 4
gpt4 key购买 nike

我在网页上有几个脚本,我正在迭代它们,找出哪些是广告调用(包含特定字符串),然后解析这些脚本标记以从这些脚本标记中获取一些 url 参数。

var cmunt_uniqueId, cmnunt_kw;

var scripts = jQuery('script');
var adObject = {};

jQuery(scripts).each(function(v,u) {

if ((jQuery(u).attr('src') !== undefined) && (jQuery(u).attr('src').indexOf('cmnUNTmob-20121130.js') > -1)) {

console.log('script.src[' + v + ']="' + jQuery(u).attr('src') + '"');

var adCall = jQuery(u).attr('src');

// console.log(adCall);

var pubtag = adCall;
var newtag = pubtag.replace(/^[^\?]+\??/, '');
var parts = newtag.split('&');
var part1 = parts[0].split('=');
var part2 = parts[1].split('=');
var cmn_site_unit = part1[1].split('/');
var cmn_site = cmn_site_unit[0];
var cmn_unit = cmn_site_unit[1];
cmnunt_kw = part2[1];
var cmunt_uniqueId = getCookie('__utma');


adObject['cmn_unit'] = cmn_unit;
adObject['cmn_site'] = cmn_site;

console.log('inside function');
console.log(adObject['cmn_site']);
console.log(adObject['cmn_unit']);

return adObject;
}
});


console.log('outside function');
console.log(adObject['cmn_site']);
console.log(adObject['cmn_unit']);

在函数内部,在两次执行中,变量都被设置并分配给一个对象,以便在函数外部进行解析。在函数外部,第二次执行时变量将返回为未定义。

这是调用运行脚本的页面: WebPage

您可以使用 Firebug 在控制台中查看输出。谁能解释一下为什么会发生这种情况?

最佳答案

您将所有结果存储在同一个 adObject 属性中。当您循环时,最新的一个会覆盖其他的。

使用 adObject[v] 代替 adObject['cmn_unit']:

adObject[v] = {
cmn_unit:cmn_unit,
cmn_site:cmn_site
};

此外,jQuery(scripts) 确实应该是脚本(虽然这不是错误,只是效率低下)。

关于javascript - 返回对象在第二次迭代时返回未定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13653828/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com