我在瀏覽器中使用控制臺來使用 JS 抓取和排序內容。這是我的代碼
這是我的結果陣列
var arr = [
"George\nPresident & Founder",
"content",
"Ronald\nCountry Director, America",
"content",
"Kriss, PhD\nVice President",
"content",
"Joseph, MS\nDirector",
"content",
"Elizabeth\nDevelopment Operations",
"content",
"Lisa, MFA, MBA\nU.S. Content",
"content.",
"Natalia\nCountry Director"
]
這是我嘗試過的:
for(var i=0; len = result.length, i < len; i ){
result[i]['something'] = [];
if(i === 0){
result[i].split('\n');
}
else if (i % 2 === 0) {
result[i].split('\n');
}
console.log(result[i]);
result[i]['test'].push(result[i]);
}
回傳結果為 result[i]['something'] = []; 未定義但是當我 console.log(result[i]) 我得到正確的結果。我試過復制(JSON.stringify(result[i])) 但我只取回一個物件。
for(var i=0; len = result.length, i < len; i ){
var arr = [];
if(i === 0){
result[i].split('\n');
}
else if (i % 2 === 0) {
result[i].split('\n')
}
arr.push(result[i])
// console.log(result[i]);
console.log(arr);
}
這不會拆分它們,它只是將它們推入陣列。
當我 console.log(result[i]) 我得到:(這是正確的,但它不在字串中,也不在陣列中;我也無法復制它)
George
President & Founder
content
Ronald
Country Director America
content
Kriss PhD
Vice President
content
Joseph MS
Director
content
Elizabeth
Development Operations
content
Lisa MFA MBA
U.S. Content
content
Natalia
Country Director
我的最終目標應該是這樣的:
var result = [
["George"],
["President & Founder"],
[ "content" ],
[ "Ronald"]
["Country Director, America" ],
[ "content" ],
[ "Kriss, PhD"],
["Vice President" ],
[ "content" ],
[ "Joseph, MS"],
["Director" ],
[ "content" ],
[ "Elizabeth"],
["Development Operations" ],
[ "content" ],
[ "Lisa, MFA, MBA"],
["U.S. Content" ],
[ "content." ],
[ "Natalia"],
["Country Director" ],
[ "content." ]
]
我該怎么做才能得到結果 [i] 并使用 copy(JSON.stringify(result)) 將其復制到剪貼板上?
uj5u.com熱心網友回復:
我會生成一個物件陣列。由于每個人在陣列中有兩行(除了 Natalia,她沒有內容?),您可以遍歷陣列,一次跳躍兩行,將每個人的資訊收集到一個物件中。
var arr = [
"George\nPresident & Founder",
"content",
"Ronald\nCountry Director, America",
"content",
"Kriss, PhD\nVice President",
"content",
"Joseph, MS\nDirector",
"content",
"Elizabeth\nDevelopment Operations",
"content",
"Lisa, MFA, MBA\nU.S. Content",
"content.",
"Natalia\nCountry Director"
];
const result = [];
for (let i=0; i < arr.length; i =2) {
const nameParts = arr[i].split("\n");
result.push({
name: nameParts[0],
title: nameParts[1],
content: arr[i 1]
});
}
console.log(result);
uj5u.com熱心網友回復:
其他答案似乎很有趣。我會建議一個稍長的,有幾個 for 回圈。
這就是我想出的:
更新:我已經更新了它,現在你也更新了你的帖子。
function changeArr(array) {
// create a temporary array
let tempArr = [];
// loop through the array which was passed as an argument
for (let i = 0; i < array.length; i ) {
let splitArr = array[i].split("\n");
// splitArr returns an array containing the 2 strings which have been split
// using the spread operator from ES6 we can spread out the elements and push them into tempArr
tempArr.push(...splitArr);
}
// tempArr should now contain your end result
return tempArr;
}
如何使用:
changeArr(arr);
/*
this will return:
=> [
"George",
"President & Founder",
"content",
"Ronald",
"Country Director, America",
"content",
"Kriss, PhD",
"Vice President",
"content",
"Joseph, MS",
"Director",
"content",
"Elizabeth",
"Development Operations",
"content",
"Lisa, MFA, MBA",
"U.S. Content",
"content",
"Natalia",
"Country Director",
"content"
]
有了這個,您可以呼叫另一個變數let result并將函式回傳的任何內容存盤在其中。
let result = changeArr(arr);
或者您可以將函式回傳的任何內容分配給arr變數。
arr = changeArr(arr);
uj5u.com熱心網友回復:
洗掉 arr.push(result[i]) 并嘗試這個
if (i % 2 == 0) {
arr.push( result[i].split('\n'));
}
else
{
arr.push(["content"]);
}
uj5u.com熱心網友回復:
您可以通過使用reduce更容易的方法來實作您的目標:
let arr = [
"George\nPresident & Founder",
"content",
"Ronald\nCountry Director, America",
"content",
"Kriss, PhD\nVice President",
"content",
"Joseph, MS\nDirector",
"content",
"Elizabeth\nDevelopment Operations",
"content",
"Lisa, MFA, MBA\nU.S. Content",
"content.",
"Natalia\nCountry Director"
]
let result = arr.reduce((acc, str) => {
str.split('\n').forEach(str => acc.push([str]));
return acc;
}, [])
console.log(result)
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/384861.html
標籤:javascript 数组 json
上一篇:從陣列串列中洗掉重復項
下一篇:單例模式-
