JavaScript是否具有与LINQ的Select语句类似的功能?

时间:2016-06-12 02:50:01

标签: javascript c# .net linq select

假设我有一个窗口对象数组,每个窗口对象都有一个ID属性,我需要获取这些ID的数组。

在LINQ,我会这样做......

var ids = windows.Select(window => window.id).ToArray();

美好而简单。但是在Javascript中,我一直在这样做......

var ids = [];

for(i = 0; i < windows.length; i++)
{
    var window = windows[i];
    ids.push(window.id);
}

我只是想知道Javascript中是否有更简单/更简单的方法,类似于LINQ的优雅解决方案。

1 个答案:

答案 0 :(得分:2)

如果您对IE8及以上支持感到满意,array.map()是一个类似的选项:

var ids = windows.map(function(val) {
    return val.id;
});

如果使用ES6胖箭头功能,这当然会变得更简洁(和LINQ类似),但如果支持非尖端浏览器则需要转换器:

var ids = windows.map(x => x.id);