我正在嘗試遍歷資料并使其生成
[
{
odds: "2/3",
position: 1,
terms: "1/5"
},
{
odds: "4/1",
position: 1,
terms: "1/7"
}
]
<script>
var res = '{"count":"2","bettype":"double","position[0]":"1","oddsa[0]":"2","oddsb[0]":"3","placeodds[0]":"1/5","position[1]":"1","oddsa[1]":"4","oddsb[1]":"6","placeodds[1]":"1/7"}';
var line = {};
//
var getvals = JSON.parse(res);
var count = parseInt(getvals["count"]);
var i = 0;
const array = [];//new Array();
for(var i = 0;i < count;i )
{
line["odds"] = getvals["oddsa[" i "]"] '/' getvals["oddsb[" i "]"];
line["terms"] = getvals["placeodds[" i "]"];
line["position"] = getvals["position[" i "]"];
array.push(line);
}
console.log(array);
</script>
然而,這是我從上面得到的結果
[{
odds: "4/6",
position: "1",
terms: "1/7"
}, [circular object Object]]
我不是 JS 編碼員,所以我一直在努力學習,但是我看過其他一些例子,但我仍然遇到問題
uj5u.com熱心網友回復:
您需要line在回圈的每次迭代中創建一個新物件。否則,您正在修改并將相同的物件參考一遍又一遍地推送到陣列
var res = '{"count":"2","bettype":"double","position[0]":"1","oddsa[0]":"2","oddsb[0]":"3","placeodds[0]":"1/5","position[1]":"1","oddsa[1]":"4","oddsb[1]":"6","placeodds[1]":"1/7"}';
//
var getvals = JSON.parse(res);
var count = parseInt(getvals["count"]);
var i = 0;
const array = []; //new Array();
for (var i = 0; i < count; i ) {
// create new object here
var line = {};
line["odds"] = getvals["oddsa[" i "]"] '/' getvals["oddsb[" i "]"];
line["terms"] = getvals["placeodds[" i "]"];
line["position"] = getvals["position[" i "]"];
array.push(line);
}
console.log(array);
uj5u.com熱心網友回復:
在第二個“你想要什么”物件中,你使用的邏輯沒有得到 4/1,因為oddssa[1]is4和oddsb[1]is6所以你會得到4/6
邏輯本身看起來很有希望保持下去!但是一旦我在回圈內指定了一個物件,我就會得到您指定的結果。
我還進行了清理,并添加了模板文字(反引號),這樣您就不會對連接字串的加號感到困惑,添加了適當的變數宣告(而不是 var,使用 const/let 標準)并更改為呼叫屬性getvals.count因為如果屬性名稱實際上是數字或破折號,我只會使用 getvals[string] 形式。
const res = '{"count":"2","bettype":"double","position[0]":"1","oddsa[0]":"2","oddsb[0]":"3","placeodds[0]":"1/5","position[1]":"1","oddsa[1]":"4","oddsb[1]":"6","placeodds[1]":"1/7"}';
const getvals = JSON.parse(res);
const count = parseInt(getvals.count);
const arr = [];
for(let i = 0;i < count;i ) {
const line = {
odds: getvals[`oddsa[${i}]`] "/" getvals[`oddsb[${i}]`],
terms: getvals[`placeodds[${i}]`],
position: getvals[`position[${i}]`]
}
arr.push(line)
}
console.log(arr)
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/367697.html
標籤:javascript 数组 json
