[英]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.