簡體   English   中英

如何動態訪問鍵值對是JS/React

[英]How to access a key value pair dynamically is JS/React

我有一個電子表格元素,它的單元格值存儲在一個對象中,如下所示:

localCells = {A1: {input: 'hi', value: 'world'}, A2: {input:'how', value:'you?'}}

它很長,就像這樣:

localCells = {A1: {…}, B1: {…}, C1: {…}, D1: {…}, A2: {…}, …}

我有一個存儲當前選定單元格的數組,如下所示:

selected = ["A1", "B3"]

當我執行一個函數時,我想從上面的數組中獲取每個單元格的值

我試過這個:

         for (let i = 0; i < selected.length; i++) {
          console.log(localCells.selected[i])
        }

這是我的錯誤:

Uncaught TypeError: Cannot read property '0' of undefined

謝謝

您只能使用[]表示法將變量用作對象鍵。 所以應該是:

for (let cellId of selected) {
    console.log(localCells[cellId])
}

您可以使用此代碼:

 let localCells = {A1: {input: 'hi', value: 'world'}, A2: {input:'how', value:'you?'}}; let selected = ["A1", "B3"]; for (let i = 0; i < selected.length; i++) { if (localCells[selected[i]]) console.log(localCells[selected[i]]); }

您正在混淆點和括號表示法的工作方式。 當您執行localCells.selected[i]要使該行代碼正常工作,您的對象將是:

localCells = {
  selected: [0,1,2,3]
}

它並沒有像你想象的那樣說localCells.a1

此處不能使用點表示法,需要使用方括號。 將其分解以提高可讀性

var key = selected[i]
var cell = localCells[key];
console.log(cell);

在一行

var cell = localCells[selected[i]];

運行示例:

 var localCells = { A1: { input: 'hi', value: 'world' }, B3: { input: 'how', value: 'you?' } } var selected = ["A1", "B3"] for (var i = 0; i < selected.length; i++) { var key = selected[i]; var cell = localCells[key]; console.log(cell); var cell2 = localCells[selected[i]]; console.log(cell2); } //using forEach selected.forEach(function(key) { console.log(localCells[key]); }); const selectedObjects = selected.map(function(key) { return localCells[key]; }); console.log(selectedObjects);

暫無
暫無

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

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