.NET的Enumerable.Select是否有javascript / jQuery对应项?

问题描述

| 我有一个javascript对象数组,每个对象都包含成员\“ Id \”和\“ Name \”。 javascript / jQuery中是否有任何内置方法可将此数组投影到另一个数组中,例如仅包含元素名称的数组。换句话说,类似于.NET中的Enumerable.Select方法。     

解决方法

         Codeplex上有一个LINQ for JavaScript项目:http://linqjs.codeplex.com/ 此处介绍了另一种方法:http://www.ienablemuch.com/2011/05/jquerys-linqs-select.html 摘录为:
<script>

// This evil code was sourced from http://stackoverflow.com/questions/761148/jquery-document-ready-and-document-write/761190#761190
$(function () {
    document.write = function (evil) {            
        $(\'body\').append(evil);            
    }
});
// ...evil :p mwahahah


$(function () {

    a = [\"jumps\",\"over\",\"lazy\",\"dog\"];

    b = $.map(a,function (v) {
        return \"www.\" + v + \".com\";
    });

    $.each(b,function () {
        document.write(this + \"<br/>\");
    });


    i = 0;
    c = $.map(b,function (v) {
        return { v: v,i: ++i,m: i * 2 };
    });

    $.each(c,function () {
        document.write(this.v + \" xxx \" + this.i + \' yyy \' + this.m + \"<br/>\");
    });

});
</script>
    ,        假设您的oldarray包含具有Name属性的对象。新数组应仅包含作为旧数组中对象名称的字符串。将Jquery用于如此简单的任务可能是一个过大的杀伤力
    var oldarray;

    var newarray;

    oldarray.forEach( function(element) 
    {
        newarray.push( element.Name);
    });