我有一个javascript对象数组,每个对象包含成员“Id”和“Name”。在javascript / jQuery中是否有任何内置方式将此数组投影到另一个数组中,例如只包含元素名称的数组。换句话说,类似于.NET中的Enumerable.Select方法。
答案 0 :(得分:1)
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>
答案 1 :(得分:0)
假设您的oldarray包含具有Name属性的对象。新数组应该只包含字符串,这些字符串是旧数组中对象的名称。使用Jquery执行这样一个简单的任务可能是一个过度杀伤
var oldarray;
var newarray;
oldarray.forEach( function(element)
{
newarray.push( element.Name);
});