2017-04-19 1 views
0

나는 값을 계산하고 값을 반환하는 함수를 가지고 있습니다.x 값을 기준으로 오브젝트에 X 데이터 양을 밀어 넣으십시오.

var c = containsObject("index", x); 

C = 2;

그때 나는 이런 식으로 뭔가 할 싶습니다

data.push({ 
    "date": getdate.toString(), 
    "value": x["Index"], 
    "value2": x["Index2"] 
}) 

을 그리고 C = 8, 무언가 같은 경우 :

data.push({ 
    "date": getdate.toString(), 
    "value": x["Index"], 
    "value2": x["Index2"], 
    "value3": x["Index3"], 
    "value4": x["Index4"], 
    "value5": x["Index5"], 
    "value6": x["Index6"], 
    "value7": x["Index7"], 
    "value8": x["Index8"] 
}) 

x 데이터의 배열 인 난 내 아약스에서 얻을 전화

doign의 가장 좋은 방법은 무엇입니까? 속성에 대한

+0

사용 a 및'X [ "인덱스"+ i]는':

이 같은 시도? – evolutionxbox

+0

'x [ "Index"]'는 항상 문자열을 반환합니까? – Saravana

답변

1

TypeScript로 태그를 지정 했으므로 인덱스 서명을 사용하여 유형에 주석을 달아 컴파일 타임 오류를 제거하십시오. 루프

let data: Array<any>; 
let c = 8; 

let x: { 
    [key: string]: string 
}; 

let obj: { 
    [key: string]: string 
} = { 
     "date": getdate.toString() 
    }; 

for (let i = 0; i < c; i++) { 
    obj["value" + c.toString()] = x["index" + c.toString()]; 
} 
+0

답해 주셔서 감사합니다. 나는'data.push (obj)'와 같은 것을해야 할 것입니다. 하지만 정확하다면, 데이터가 푸시의 프로퍼티를 읽을 수 없다는 오류를 던집니다. –

+0

데이터가 '배열 '으로 입력 되었습니까? – Saravana

1

사용 string-key 구문 :

var _object={}; 
for(let i = 0;i<C;i++){ 
    let Cstr=C.toString(); 
    _object["value"+Cstr]=x["index"+Cstr]; 
} 
data.push(_object); 
+0

고마워,하지만 귀하의 코드를 사용하여이 타이프 스크립트 오류가 발생하면 개체 형식의 인덱스 서명에 암시 적으로 '모든'형식이 있습니다. 놀이터에서 그것의'_object [ "value"+ Cstr]' –

+0

@ TonyNielson 모두 괜찮습니다. 당신은'config'에서 'any'타입을 활성화합니까? any 대신에'{}'type을 사용할 수 있습니다. –

0

당신은이 작업을 수행 브래킷 표기법을 사용할 수 있습니다.

const c = 3; 
const object = {}; 
for (let i = 1; i <= c; i++) { 
    object['value' + i] = x['index' + i]; 
} 
관련 문제