2017-02-18 14 views
0

Я собираю Flikr api для публичных фотографий и потребляю несколько разных результатов.Проблема с дублированием и форматированием Array с использованием карты и разделение с помощью React 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

Вы можете использовать Regex для достижения этой цели, которая является менее неудобный, чем при использовании 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', поэтому либо найдите обходное решение, либо используйте другую библиотеку. –