问题描述
|
我有一个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);
});