如何在另一个数组中创建一个数组?

时间:2010-05-07 21:06:40

标签: javascript

我有以下JavaScript Array

var jsonArray = { 'homes' : 
[
    {
        "home_id":"203",
        "price":"925",
        "sqft":"1100",
        "num_of_beds":"2",
        "num_of_baths":"2.0",
    },
    {
        "home_id":"59",
        "price":"1425",
        "sqft":"1900",
        "num_of_beds":"4",
        "num_of_baths":"2.5",
    },
    // ... (more homes) ...     
]}

我想将其转换为以下类型的Array(伪代码):

var newArray = new Array();
newArray.push(home_id's);

我该怎么做?

请注意newArray仅来自大home_ids数组的jsonArray

3 个答案:

答案 0 :(得分:5)

只需创建一个新数组并复制旧值。

var ids = [];
for (var i = 0; i < jsonArray.homes.length; i++) {
    ids[i] = jsonArray.homes[i].home_id;
}

答案 1 :(得分:0)

同样,jsonArray不是一个数组而是一个对象,但是jsonArray.homes是

var arr = [];
for (var i=0, len = jsonArray.homes.length; i < len; i++){
    arr.push(jsonArray.homes[i].home_id);
}  

答案 2 :(得分:-2)

这是一种迭代方式:

function getPropertyValues (array, id) {
  var result = [];
  for ( var hash in array ) {
    result.push( array[hash][id]);
  }
  return result;
}

var home_ids = getPropertyValues(jsonArray.homes, "home_id");

或者,如果你想真正快速和肮脏(并且你只针对现代的支持Javascript的引擎):

var home_ids = jsonArray.homes.map( function(record) { return record.home_id } );