66 votes

Existe-t-il une syntaxe lambda de type C# en JavaScript ?

Existe-t-il un framework ou un post-processeur pour JavaScript qui supporte la syntaxe lambda comme en C# ?

Les définitions de fonctions dans CoffeeScript semblent ressembler à des lambdas, mais je ne les ai pas étudiées en détail.

Quelqu'un peut-il me dire, Puis-je utiliser la syntaxe lambda en JavaScript ?

3voto

seven Points 138

FIDDLE : https://jsfiddle.net/vktawbzg/

NPM : https://www.npmjs.com/package/linqscript

GITHUB : https://github.com/sevensc/linqscript

En utilisant Typescript, j'ai créé une classe List<T> qui prolonge Array<T>

l'usage :

var list = new List<ListView>();
...
var selected = list.Items.Where(x => x.Selected);

mise en œuvre :

 export class List<T> extends Array<T> {

    public Where(callback: (value: T) => boolean, thisArg?: any): List<T> {
            try {
                const list = new List<T>();

                if (this.length <= 0)
                    return list;

                if (typeof callback !== "function")
                    throw new TypeError(callback + ' is not a function');

                for (let i = 0; i < this.length; i++) {
                    const c = this[i];
                    if (c === null)
                        continue;

                    if (callback.call(thisArg, c))
                        list.Add(c);
                }

                return list;
            }
            catch (ex) {
                return new List<T>();
            }
        }
...
}

EDITAR: J'ai créé un repo sur Github : https://github.com/sevensc/linqscript

0voto

Paul Free Points 17

Il y a quelques années, j'ai écrit une fonction Javascript pour traduire les expressions lambda de style C# en une fonction Javascript. Voir mon article de blog à ce sujet ici : http://www.paulfree.com/11/javascript-lambda-expressions .

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X