簡體   English   中英

使用JSON從對象數組創建屬性數組

[英]Creating an array of properties from an array of objects with JSON

function Person(name, favouriteColour) {
   this.Name = name;
   this.FavouriteColour = favouriteColour;
}

var group = [];

group.push(new Person("Bob", "Green"));
group.push(new Person("Jane", "Red"));
group.push(new Person("Jack", "Blue"));

我該怎么做才能從群組中獲取一系列名稱?

group.??? -> ["Bob", "Jane", "Jack"]

在c#中,與: group.ConvertAll<string>(m => m.Name)

我認為你只需要循環遍歷數組並以這種方式獲取名稱。

function getKeysArray(key, objArray) {
    var result = [], l = objArray.length;
    for (var i = 0; i < l; i++) {
        result.push(objArray[i][key]);
    }
    return result;
}

alert(getKeysArray("Name", group));

JSFiddle示例

您也可以嘗試一個單獨的庫,如LINQ to JavaScript ,看起來非常有用。

您可以使用.map ,但在舊版瀏覽器中不可用。

// names is group's Name properties
var names = group.map(function(value) { return value.Name; });

我將提供明顯的一個直接javascript,適用於所有瀏覽器:

var names = [];
for (var i = 0; i < group.length; i++) {
    names.push(group[i].Name);
}

或者使用jQuery(使用它的.map實用程序方法):

var names = $.map(group, function(item) {return(item.Name);});

或者,如果您安裝.map填充程序以確保.map Array方法在所有瀏覽器中都可用:

var names = group.map(function(item) {return(item.Name);});

在JavaScript 1.6及更高版本中:

group.map(function(p) { return p.Name; });

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM