Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/421.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 这项技术叫什么?_Javascript - Fatal编程技术网

Javascript 这项技术叫什么?

Javascript 这项技术叫什么?,javascript,Javascript,我来自C。一个使用C语法的小示例: // using System.Linq; int[] array = { 1, 2, 3, 5 }; int result = array.SingleOrDefault(x => x % 2 == 0); 我想将该语法转换为javascript语法: Array.prototype.singleOrDefault=函数tsource{ var$self=this 如果$self.length{ 对于let i=0;ix%2==0 如果结果为!=

我来自C。一个使用C语法的小示例:

// using System.Linq;

int[] array = { 1, 2, 3, 5 };
int result = array.SingleOrDefault(x => x % 2 == 0);
我想将该语法转换为javascript语法:

Array.prototype.singleOrDefault=函数tsource{ var$self=this 如果$self.length{ 对于let i=0;i<$self.length;i++{ 如果tsource$self[i]{ 返回$self[i] } } 返回空 } }; var测试=功能{ var数组=[1,2,3,5]; var result=array.singleOrDefaultx=>x%2==0 如果结果为!==null{ 警报结果 } };
单击me看起来三元操作数将成为JS中的替代对象


我认为您应该使用JS库来调用相同的函数:

它包含大约90种方法

这是一个与您的方法相关的示例

var jsonArray = [
{ "user": { "id": 100, "screen_name": "d_linq" }, "text": "to objects" },
{ "user": { "id": 130, "screen_name": "c_bill" }, "text": "g" },
{ "user": { "id": 155, "screen_name": "b_mskk" }, "text": "kabushiki kaisha" },
{ "user": { "id": 301, "screen_name": "a_xbox" }, "text": "halo reach" }
]
// ["b_mskk:kabushiki kaisha", "c_bill:g", "d_linq:to objects"]
var queryResult = Enumerable.From(jsonArray)
.Where(function (x) { return x.user.id < 200 })
.OrderBy(function (x) { return x.user.screen_name })
.Select(function (x) { return x.user.screen_name + ':' + x.text })
.ToArray();
// shortcut! string lambda selector
var queryResult2 = Enumerable.From(jsonArray)
.Where("$.user.id < 200")
.OrderBy("$.user.screen_name")
.Select("$.user.screen_name + ':' + $.text")
.ToArray();

lambda表达式?匿名函数?它是一个猴子补丁函数。您是在问调用了.singleOrDefault之类的函数,还是调用了x=>x%2==0部分,或者。。。?顺便说一句,您的函数的作用似乎与标准数组基本相同。将它们称为Linq方法有助于澄清它们的来源,以及它们是您可以使用的一组外部方法的一部分。由于您是自己编写的,您可以将其称为原型扩展方法或其他东西。这对其他人来说并没有帮助,因为这是你自己写的。你说的lambda表达式是什么意思?JavaScript允许匿名函数表达式,因此someArray.findx=>x%2==0和someArray.findfunctionx{return x%2==0}都是完全有效的。我不明白你是如何得出这个结论的。不能用三元运算符替换该函数。操作数是运算符作用的元素,这就是我所指的。老兄,我知道我的术语,但是谢谢你。在这里,您可能需要一个复习:他的功能是测试值——目的是确定值是单一值还是默认值。使用三元函数返回真或假是我在JS中能想到的最接近的事情,它不需要一堆if条件。好吧,抱歉这个术语,我仍然不明白你所说的与OP所做的有什么关系。OP已经有一个返回true或false的JS表达式,因此JS中最接近OP正在做的事情就是他们已经在做的事情。。另外,关于了解你的术语,在你用元素替换逻辑之前,我确实看到了你的评论;我们都会犯错误…@Korgrue如果你在回答中用三元运算符重写我的函数,那就更好了。我想我误解了OPs最初的问题——我以为他指的是代码的功能,比如这种功能叫什么。我看到OP试图做的是比较值,并根据输入得到一个回报——对我来说,这将被表示为三元。忽略我的答案-这是不正确的。虽然你不回答我的问题,但我喜欢linqjs。很友好。谢谢不客气,别忘了把我的答案标为最好的