2017-02-18 56 views
0

我正在獲取公共照片的Flickr api並消費一些不同的結果。使用地圖和分割與React JS陣列重複和格式問題JS

當提取作者時,它會在所有內容前添加「[email protected](」作者「),我已經設法將上半部分'[email protected](」',但遇到了。另一半的想法只是搶筆者在引號之間:

[email protected](「作家」)

另一部分是照片顯示了兩次因某種原因有什麼想法?

let output = this.props.posts.map(e => e.author.split('[email protected] ("').map(f => <li><img src={e.media.m}/><h3>{f}</h3></li>)); 

回答如果有人需要DS是:

const regex = /(?:"[^"]*"|^[^"]*$)/; 
    let output = this.props.posts.map((e, index) => <li key={index}><img src={e.media.m}/><h3>{e.author.match(regex)[0].replace(/"/g, "")}</h3></li>); 

回答

1

您可以使用正則表達式來實現這一點,這是一個不太繁瑣的比使用split

const author = '[email protected] (" author ")'; 
 
const name = '[email protected] (" John Doe ")'; 
 
const regex = /\(" (.*?) "\)/; 
 

 
console.log(
 
    author.match(regex)[1] 
 
); 
 

 
console.log(
 
    name.match(regex)[1] 
 
);

因此,對於您的代碼片段:

const regex = /\(" (.*?) "\)/; 
let output = this.props.posts.map(e => <li><img src={e.media.m}/><h3>{e.author.match(regex)[1]}</h3></li>); 
+0

這是API請求的錯誤,而不是此p代碼。 –

+0

在想如何解決? – user992731

+0

好像Axios不支持'jsonp',所以要麼找到解決方法,要麼使用不同的庫。 –