簡體   English   中英

將數組添加為新的鍵值對

[英]Adding an array as a new key-value pair

我有一個現有的數組,其中包含一系列項目的鍵值對:

resultsArray = [
  {
    parkName: "Central Park",
    owner: "NYC" 
  },
  {
    parkName: "Patterson Park",
    owner: "Baltimore"
  }
]

我想為每個值都包含便利設施的項添加一個附加的鍵值對。 例如:如果中央公園包括一個狗公園,緩跑徑和籃球場,帕特森公園包括一個棒球場和娛樂中心,那么在將便利設施添加到數組時,resultsArray現在看起來像:

resultsArray = [
  {
    parkName: "Central Park",
    owner: "NYC",
    amenities: "Dog Park", "Jogging Trail", "Basketball Courts"
   },
  {
    parkName: "Patterson Park",
    owner: "Baltimore",
    amenities: "Baseball Fields", "Recreation Center"
   }
]

我對Java語言還比較陌生,但是我已經為每個公園成功創建了一系列便利設施。 然后,我嘗試如下添加每個amenityArray:

resultsArray.push({
  amenities: amenityArray
});

但是,這並沒有給我我想要的東西。

有人可以演示如何將amenityArray添加為每個公園的鍵值對嗎?

對於resultsArray每個對象,添加相應的便利性。


for (let i = 0; i < resultsArray.length; i++) {
    resultsArray[i][i]['amenities'] = amenityArray[i];
}

更詳細的版本是


for (let i = 0; i < resultsArray.length; i++) {
    let result = resultsArray[i];  // i is an index
    let innerResult = result[i];  // i is a key
    innerResult['amenities'] = amenityArray[i];
}

迭代數組,並在內部對象中添加新的鍵值對。

注意:動態選擇設施。

 resultsArray = [{ 0: { parkName: "Central Park", owner: "NYC" } }, { 1: { parkName: "Patterson Park", owner: "Baltimore" } }]; amenities = { "0": "X Park, Y Park, Z Park", "1": "A Park, B park, C Park" }; [...resultsArray].forEach(token => { Object.keys(token).forEach(key => token[key]['amenities'] = amenities[key]); }) console.log(resultsArray); 

您可以使用.forEach()遍歷數組並根據索引設置各項:

 var resultsArray = [{parkName: "Central Park",owner: "NYC"},{parkName: "Patterson Park", owner: "Baltimore"}] var amenityArray = [["Dog Park", "Jogging Trail", "Basketball Courts"], ["Baseball Fields", "Recreation Center"]]; resultsArray.forEach((val, index) => {val.amenities = amenityArray[index]}) console.log(resultsArray) 

您可以為此使用map

const newArray = resultsArray.map((item, i) => {
  item[i].amenities = amenityArray[i];
  return item;
});

同樣,您的數組結構看起來很怪異,您應該考慮刪除那些多余的嵌套對象,然后將更容易進行迭代:

resultsArray = [{
    parkName: "Central Park",
    owner: "NYC"
  },
  {
    parkName: "Patterson Park",
    owner: "Baltimore"
  }
]

const newArray = resultsArray.map((item, i) => {
  item.amenities = amenityArray[i];
  return item;
});

暫無
暫無

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

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