iT邦幫忙

0

請問此段 C# 代碼用 javascript lambda 該如何寫呢?

請問此段 C# 代碼用 javascript lambda 該如何寫呢?

	var random = new Random();
	var result = Enumerable.Range(1,20).Select(s=>random.Next(1,10000005)).Distinct();
4
w4560000
iT邦新手 4 級 ‧ 2020-08-14 11:54:03
最佳解答

感覺有點醜 可能有更漂亮的寫法

let array = Array.from(new Set(Array.from(new Array(20), (val, index) => Math.floor(Math.random() * 10000005) + 1)));
console.log("random array", array);
let array = [...new Set(Array.from(new Array(20), (val, index) => Math.floor(Math.random() * 10000005) + 1))];
console.log("random array", array);

太厲害了!!
感謝 w4560000 大神

用 Set 已經是很漂亮的寫法了 XD

 (val, index) => Math.floor(Math.random() * 10000005) + 1))

val 跟 index 都沒用到可以直接拿掉更簡略一點

0
glj8989332
iT邦新手 2 級 ‧ 2020-08-14 11:38:59

這樣子, 其中Distinct()不支援, 可以參考這個LINQ Farm: Using Distinct and Avoiding Lambdas

var result = (from s in Enumerable.Range(1, 20)
              select random.Next(1, 10000005)).Distinct();

感謝您

XD 後來才發現你是問轉JS, 不好意思

0
通靈亡
iT邦研究生 5 級 ‧ 2020-08-14 11:45:31

我大哥,估狗一下 c# Linq to Javascript 就會有一系列的答案了...

https://sung.codes/blog/2018/03/03/approximate-equivalent-linq-methods-javascript-part-2/

感謝大神

我要發表回答

立即登入回答