[英]trying to use copy(JSON.stringify(result))
我在瀏覽器中使用控制台來使用 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]);
}
結果返回 [i]['something'] = []; 是未定義的,但是當我 console.log(result[i]) 我得到正確的結果。 我試圖復制(JSON.stringify(result [i])),但我只得到一個 object。
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);
}
這不會拆分它們,它只是將它們推入 arrays。
當我 console.log(result[i]) 我得到:(這是正確的,但它不是字符串,也不是 arrays;我也不能復制這個)
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)) 將其復制到我的剪貼板上?
我會生成一個對象數組。 由於每個人的數組中有兩行(除了 Natalia,她沒有內容嗎?),您可以循環遍歷數組,一次跳轉兩個,將每個人的信息收集到 object 中。
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);
你可以試試這個
if (i % 2 == 0) {
result[i] = result[i].split('\n');
}
正如您所說,結果數組實際上是注釋中的字符串數組,您可以通過使用flatMap
方法更容易地實現您的目標,如下所示:
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.flatMap(item => item[0].split('\n')); console.log(result)
其他答案似乎很有趣。 我會建議一個稍長的,它有幾個 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
的變量並存儲 function 返回的任何內容。
let result = changeArr(arr);
或者,您可以將 function 返回的任何內容分配給arr
變量。
arr = changeArr(arr);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.