使Java脚本执行 类似 Python的列表理解的最干净的方法是什么?
在Python中,如果我有一个对象列表,我要“拉出”我的名字,我会这样做…
list_of_names = [x.name for x in list_of_objects]
在javascript中,除了仅使用for循环结构外,我没有真正看到一种更“美丽”的方式。
仅供参考:我使用的是jQuery;也许它具有一些漂亮的功能使之成为可能?
更具体地说,假设我使用一个jQuery选择器$('input')
来获取所有input
元素,那么我将如何
最干净地name
为每个input
元素创建一个包含所有属性的数组-即数组中的所有$('input').attr('name')
字符串?
使用Array.map的一般情况,需要javascript
1.6(也就是说,可在IE <9以外的所有浏览器上运行) 或
与MooTools之类的对象扩充框架在所有浏览器上均可使用:
var list_of_names = document.getElementsByTagName('input').map(
function(element) { return element.getAttribute('name'); }
);
jQuery特定示例,适用于每种浏览器:
var list_of_names = jQuery.map(jQuery('input'), function(element) { return jQuery(element).attr('name'); });
其他答案使用.each
是错误的;不是代码本身,而是实现次优。
编辑: Javascript 1.7中也引入了Array
comprehensions,但这纯粹取决于语法,不能在缺乏它的浏览器中进行仿真。这是您在Javascript中与所发布的Python代码段最接近的内容。但是,这已从语言中删除
问题内容: 我正在运行Python 3.4.2,我对代码的行为感到困惑。我正在尝试创建递增次数的可调用多项式函数列表: 但是出于某种原因,它这样做: 为什么似乎在列表理解中重复了最后一个lambda表达式的列表? 问题答案: 这个问题是经典的“陷阱”,是在lambda函数被调用之前,不会查找lambda函数中引用的内容。当时的值是结束时绑定到的最后一个值,即。 如果绑定到函数定义中的默认值,则每个
问题内容: 从我的Python控制台 为什么在最后打印出三个都不打印? 问题答案: 列表理解不是当前工作的正确工具。它将始终返回一个 list ,并且给定的结果为,该列表将填充值。当我们对创建值列表不感兴趣时,仅对不返回值的函数求值时,简单的循环会更好:
问题内容: 我有一组三个列表项,它们希望在页面加载时从高到低自动显示。理想情况下使用jquery或javascript。 每个列表项都需要有自己的ID,因为它们每个都有各自的背景图像。数字必须是文本节点,以便用户可以编辑它们。 问题答案: 这可能是最快的方法,因为它不使用jQuery: 像下面这样调用函数: 您可以以相同的方式对其他列表进行排序,如果列表类在同一页面上还有其他元素,则应给您的ul一
本文向大家介绍如何使用JavaScript对HTML列表进行排序?,包括了如何使用JavaScript对HTML列表进行排序?的使用技巧和注意事项,需要的朋友参考一下 要使用JavaScript对HTML列表进行排序,代码如下- 示例 输出结果 上面的代码将产生以下输出- 在点击“点击排序”按钮-
我正在尝试进行大量的外部服务调用,每个调用都遵循异常处理和有条件的进一步处理。我认为使用内部的. on完成来扩展这个不错的(Scala中带有期货的异步IO)示例会很容易,但似乎我对范围和/或期货有些不理解。有人能给我指出正确的方向吗? 在我的电脑上(Scala 2.10.4 ),这打印出来: 我要(顺序不重要):
简而言之:在我的JSP中,我需要使用C:Foreach jstl迭代一个自定义bean类列表,比如list,MyClass有键和值变量,以及这些变量的getter和setter 细节:类似这样的内容: 在Java代码中,我有: List pairlist=new ArrayList();//MyClass是一个简单的bean类,具有变量“key”和“value”,以及相同的getter和sette