簡體   English   中英

嘗試使用復制(JSON.stringify(結果))

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM