[英]How do I create a new array with a javascript for loop. I got the error "circular object Object"
我需要通過用ajax划分返回的數組來創建一個新數組。 我將復制具有與此數組數量一樣多的 offerCurrencyTypeExchanges 值的對象,並將代碼和費率值寫入“標簽”值。 但我想我在循環中創建了一個錯誤。 將最后一個值復制到所有。
結果在 jsfiddle https://jsfiddle.net/xd68no54/ 中看起來更好
var res = [{
id: 3,
name: "Türk Lirası",
code: "TRY",
offerCurrencyTypeExchanges: [],
label: "Türk Lirası (TRY)"
},
{
id: 4,
name: "USD",
code: "USD",
offerCurrencyTypeExchanges: [{
exchangeRateId: 33642,
localize: "Alış",
value: 9.2857,
valueSection: 1
},
{
exchangeRateId: 33642,
localize: "Satış",
value: 9.3024,
valueSection: 2
},
{
exchangeRateId: 33642,
localize: "Efektif alış",
value: 9.2792,
valueSection: 3
},
{
exchangeRateId: 33642,
localize: "Efektif satış",
value: 9.3164,
valueSection: 4
}
]
},
{
id: 5,
name: "EUR",
code: "EUR",
offerCurrencyTypeExchanges: [{
exchangeRateId: 33643,
localize: "Alış",
value: 10.8108,
valueSection: 1
},
{
exchangeRateId: 33643,
localize: "Satış",
value: 10.8303,
valueSection: 2
},
{
exchangeRateId: 33643,
localize: "Efektif alış",
value: 10.8033,
valueSection: 3
},
{
exchangeRateId: 33643,
localize: "Efektif satış",
value: 10.8465,
valueSection: 4
}
]
},
{
id: 6,
name: "TRY",
code: "TRY",
offerCurrencyTypeExchanges: [],
label: "TRY (TRY)"
}
]
var resultAutoComplete = [];
var arrInObj = {};
for (var i = 0; i < res.length; i++) {
if (res[i].offerCurrencyTypeExchanges.length == 0) {
arrInObj = {
code: res[i].code,
id: res[i].id,
name: res[i].name,
label: res[i].label = res[i].name + " " + "(" + res[i].code + ")"
}
resultAutoComplete.push(arrInObj)
} else {
arrInObj = {
code: res[i].code,
id: res[i].id,
name: res[i].name,
}
for (var j = 0; j < res[i].offerCurrencyTypeExchanges.length; j++) {
arrInObj.label = res[i].code + " - " + res[i].offerCurrencyTypeExchanges[j].localize + "(" + res[i].offerCurrencyTypeExchanges[j].value + ")";
arrInObj.exchangeRateId = res[i].offerCurrencyTypeExchanges[j].exchangeRateId
arrInObj.localize = res[i].offerCurrencyTypeExchanges[j].localize
arrInObj.value = res[i].offerCurrencyTypeExchanges[j].value
arrInObj.valueSection = res[i].offerCurrencyTypeExchanges[j].valueSection
resultAutoComplete.push(arrInObj)
}
}
console.log(resultAutoComplete)
}
Süleyman TAŞÇI,您能否舉例說明您希望看到的結果? 我認為這可能會澄清你在問什么。 我很樂意嘗試並提供幫助!
我不是很明白你想做什么,但你可以提取你的對象並用它們做你想做的事情。
const currencyExchangeTypes = res.map((c) => c.offerCurrencyTypeExchanges).reduce((a, b) => a.concat(b), []);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.