JavaScript - 数组值空白

标签 javascript jquery arrays ajax

我有一个独特的挑战: 在 URL1(随机维基百科页面)上,向 URL2(100 个最常见的单词维基百科页面)发出 ajax 请求,从返回的数据创建数组以供稍后使用。

我必须在“URL1”上从控制台运行此命令 示例:

  1. 导航至 URL1
  2. 打开控制台
  3. 粘贴代码
  4. 按回车键

到目前为止,我已经能够非常接近以下内容:

 $.ajax({
    url: 'https://en.wikipedia.org/wiki/Most_common_words_in_English',
    type: 'GET',
    dataType: 'html',
    success: function(data) { 
          Names = $.map($(data).find('.wikitable tr'), function() { 
return $(this).find('td:last').text()});
console.log(Names);
    }           
});        

但是我的数组中出现空白值。

在 URL2(ajax 请求中的链接)上,以下代码完美运行

var Names = $('.wikitable tr').map(function() { 
return $(this).find('td:last').text() }).get(); console.log(Names);

由于 .get,我在使用这个确切的代码时遇到了错误,删除它后,我得到了一个包含适当数量元素的数组,但它们都是空白的。

谢谢

最佳答案

你的逻辑是对的,你只是使用了错误的函数。 $.map$().map是具有不同上下文和不同参数的不同函数。

如果您使用正确的 map 函数,您的问题应该可以解决。改变

success: function(data) { 
    Names = $.map($(data).find('.wikitable tr'), function() { 
        return $(this).find('td:last').text();
    });
    console.log(Names);
}

success: function(data) { 
    Names = $(data).find('.wikitable tr').map(function() { 
        return $(this).find('td:last').text();
    });
    console.log(Names);
}

map的第二种形式中,this关键字被设置为DOM元素。

我还注意到,代码会返回 105 文本,而不是表中的 100 个单词,因为它也选择了表标题。 .map 的另一个很酷的技巧是,如果返回 null,它不会在结果中包含该值。因此,你可以像

Names = $(data).find('.wikitable tr').map(function() { 
    return $(this).find('td:last').text() || null;
});

作为空白字符串,计算结果为 false,因此 return 将返回 null 而不是 ''。或者,您可以使选择器更加具体,例如:

Names = $(data).find('.wikitable tr td:odd').map(function() { 
    return $(this).text();
});

关于JavaScript - 数组值空白,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36639255/

相关文章:

javascript - 如何在网格列中显示值。

javascript - 访问 var 外部函数

javascript - JavaScript 中的点击事件未触发

python - 创建基于字符串的数组在字符串之前引入随机 'b'

php - mysql_fetch_array 并且只有字符串数组键

c - 将 NULL 指针的常量数组分配给结构数组内结构中的数组

javascript - 如何显示带有 Facebook Analytics 数据的仪表板

javascript - 如何禁用移动浏览器的滚动?

php - 类型 : Error Message: Call to a member function result() on string Filename: CI\application\models\Country_model. php 行号:34

jQuery.Validate 条件验证 RadioButton 和 DropDownList