簡體   English   中英

使用值作為新鍵,並將 false 作為對象數組中這些的值

[英]Use values as new keys and assign false as the value for these in an array of objects

我想改變一個包含對象的數組,使其只包含一個鍵值對,其中鍵是某個鍵的值。

具體來說,我有一個這樣的輸入數組:

const inputArray = [
  {key1: 'en', key2: 'English'}, 
  {key1: 'ja', key2: 'Japanese', key3: 'some additional key-value-pair'}
]

我希望 output 數組是這樣的,使用key2的值作為鍵,使用false作為這些值,僅此而已:

const desiredOutput = [
  {English: false}, 
  {Japanese: false}
]

到目前為止,我嘗試如下,使用.map()

 const inputArray = [{key1: 'en', key2: 'English'}, {key1: 'ja', key2: 'Japanese', key3: 'some additional key-value-pair'}] const outputArray = inputArray.map(obj => { obj[obj.key2] = false return obj }) console.log(outputArray)

我試過.reduce但無濟於事。

console.log(inputArray.map((input) => {
  return {[input.key2]: false};
})); 

 const inputArray = [ {key1: 'en', key2: 'English'}, {key1: 'ja', key2: 'Japanese', key3: 'some additional key-value-pair'} ] console.log(inputArray.map((input) => { return {[input.key2]: false}; }))

您所做的是向obj添加key2值並返回 object。 相反,您需要返回僅包含key2屬性和false的新 object

 const inputArray = [ {key1: 'en', key2: 'English'}, {key1: 'ja', key2: 'Japanese', key3: 'some additional key-value-pair'} ] const desiredOutput=inputArray.map(obj=>( {[obj.key2]:false} //Here I am creating a new object and returning it )) console.log(desiredOutput)

您沒有變形輸入數組的每個元素,而是添加到它們中......

 const inputArray = [{ key1: 'en', key2: 'English' }, { key1: 'ja', key2: 'Japanese', key3: 'some additional key-value-pair' }] const outputArray = inputArray.map(obj => { let newObj = {}; newObj[obj.key2] = false; return newObj; }) console.log(outputArray);

暫無
暫無

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

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