2016-12-09 5 views
0

У меня есть массивReactjs - Замена значения массива из другого

var imagesArray = [ 
    { 
    url: '4.jpg' 
    }, 
    { 
    url: '2.jpg' 
    }, 
    { 
    url: '3.jpg' 
    } 
]; 

И я получил ответ JSON из

[{"path":"site:1.jpg","data":[]}, 
    {"path":"site:5.jpg","data":[]}, 
    {"path":"site:7.jpg","data":[]}] 

Как я могу заменить значение url в imagesArray из path значения JSON ответ в как 1.jpg, 5.jpg, 7.jpg?

+0

Я не думаю, что вы просите ясно. Каковы отношения? Их положение в массиве? То есть: imagesArray [0] == response [0]? – Chris

ответ

1
var imagesArray = [ 
    { 
    url: '4.jpg' 
    }, 
    { 
    url: '2.jpg' 
    }, 
    { 
    url: '3.jpg' 
    } 
]; 

response = [{"path":"site:1.jpg","data":[]}, 
    {"path":"site:5.jpg","data":[]}, 
    {"path":"site:7.jpg","data":[]}] 

class Test extends React.Component { 
     render(){ 
    imagesArray = imagesArray.map((img,i)=>{return({url : response[i].path}) }) 
     return (
     <code>{JSON.stringify(imagesArray)}</code> 
    ) 
    } 
} 

React.render(<Test />, document.getElementById('container')); 

DEMO

+0

Мне нужен вывод как [{"url": "1.jpg"}, {"url": "5.jpg"}, {"url": "7.jpg"}] – Hulk1991

+0

Как добавить, response'> 'imagesArray' – Hulk1991

1

Может быть, вы можете сделать что-то вроде этого:

let imagesArray = [ 
 
    { 
 
    url: '4.jpg' 
 
    }, 
 
    { 
 
    url: '2.jpg' 
 
    }, 
 
    { 
 
    url: '3.jpg' 
 
    } 
 
]; 
 
    
 
let response = [ 
 
    {"path":"site:1.jpg","data":[]}, 
 
    {"path":"site:5.jpg","data":[]}, 
 
    {"path":"site:7.jpg","data":[]} 
 
] 
 

 
let newArray = imagesArray.map((img, i) => img.url = response.filter(r => r.path)[i]); 
 

 
console.log(JSON.stringify(newArray));

Here is fiddle.

2

Это даст вам массив из трех объектов с URL пр вы хотите.

var formatedResponse = response.map((r) => { return {url: r.path.split(':')[1]};}) 
Смежные вопросы