
我有這么一組資料,其中table_1,table_2是動態的,會繼續增加table_3
我要取到table_1中的資料是沒問題的,平時給資料設定值這樣是可以的
table.cache.table_1[0].name='張三'
問題是table_1[0]這個是動態的,我把他拼接出來后就無法設定值了
var arr={};
arr.name='table_1[0]';
table.cache.arr.name.name='張三';這樣就報錯了,有啥辦法嗎?
table.cache.table_1[0].name='張三'這樣就可以
uj5u.com熱心網友回復:
不知道你說的table_1[0]這個所謂的“動態”是怎么個動態???table.cache.table_1[0].name='張三';//這就是最直接的賦值方式
//也可以使用屬性訪問的方式進行
const propName = 'name'
table.cache.table_1[0][propName]='張三';
但如果你所謂的“動態”,是類似于
const a = {
b: {
c: {
d: {e: 1}
}
}
}
然后你因為所謂的“動態”不能使用以下方式直接賦值:
a.b.c.d.e=2;
而是希望有一個方法能直接給指定的路徑進行讀寫,比如:
對a,路徑:b.c.d.e進行賦值操作。你想像中或許是這樣的:
a['b.c.d.e']=2;
但事實上,這是不行的。你需要自己寫方法去實作它。
如果你所說的“動態”不在上述之列,貼出你的代碼,不要描述的時候,你自己一邊在“腦補”只有你自己知道的東西,卻不寫出來

uj5u.com熱心網友回復:
如果雙向系結直接修改值,如果不是雙向系結 就要修改后再一次賦值
uj5u.com熱心網友回復:
var a = {
cache: {
table_1: [
{ name: 'aaa' }
],
table_2: [
{
name: 'bbb'
},
{
name: 'bbb1'
}
]
}
}
var b = {
name: 'table_1', // table_1物件
index: 0 // table_1下標
}
var c = {
name: 'table_2',
index: 1
}
console.log(a.cache[b.name][b.index].name)
console.log(a.cache[c.name][c.index].name)
uj5u.com熱心網友回復:
要學會活用evalvar ta = {name: "this is value of ta."};
var arr = {name: "ta.name"};
console.log(arr.name); //列印arr的name
console.log(eval(arr.name)); //列印ta的name轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/211629.html
標籤:JavaScript
上一篇:Nodejs 安裝失敗
