我必須從陣列中創建一個物件,然后我才能使用它。我正在嘗試這段代碼它可以作業但輸出只有最后一個
let datas = "team1 1, team2 2, team3 3";
let teamdata = datas.split(" ");
var myObj = (function () {
var result = { Tname: null, count: null };
datas.split(/\s*\,\s*/).forEach(function (el) {
var parts = el.split(/\s* \s*/);
result.Tname = parts[0];
result.count = parseInt(parts[1]);
});
return result;
})();
console.log(myObj);
輸出獲取{ Tname: 'team3', count: 3 }
需要輸出
[{name: "team1", count: 1},
{name: "team2", count: 2},
{name: "team3", count: 3}]
uj5u.com熱心網友回復:
簡單地說,你可以用
String.split()andArray.map()
let datas = "team1 1, team2 2, team3 3";
let teamdata = datas.split(", "); // ['team1 1', 'team2 2', 'team3 3']
let result = teamdata.map(team=>({team:team.split(/\s /)[0],count: team.split(/\s /)[1]}))
console.log(result);
預期輸出:
[{name: "team1", count: 1},
{name: "team2", count: 2},
{name: "team3", count: 3}]
uj5u.com熱心網友回復:
我必須做一個物件
但是您隨后聲稱您的預期輸出是一個陣列,而不是一個物件:
[
{name: "team1", count: 1},
{name: "team2", count: 2},
{name: "team3", count: 3}
]
在這種情況下,創建一個陣列,然后.push()在回圈中創建該陣列:
var result = [];
datas.split(/\s*\,\s*/).forEach(function (el) {
var parts = el.split(/\s* \s*/);
result.push({
Tname: parts[0],
count: parseInt(parts[1])
});
});
return result;
uj5u.com熱心網友回復:
這應該可以正常作業:
let datas = "team1 1, team2 2, team3 3";
var results = [];
var myObj = (function () {
var result = { Tname: null, count: null };
datas.split(/\s*\,\s*/).forEach(function (el) {
var parts = el.split(/\s* \s*/);
result.Tname = parts[0];
result.count = parseInt(parts[1]);
results.push(result);
});
return results;
})();
console.log(results)
您的代碼的問題是您成功拆分了字串并將其轉換為物件,但是由于您期望結果在陣列中,因此您沒有存盤物件,而是一次又一次地重寫同一個物件。
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/504525.html
標籤:javascript 细绳 目的
