如何动态访问键值对是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);
我有一个电子表格元素,它的单元格值存储在一个对象中,如下所示:
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);