开发者问题收集

Reactjs-用另一个数组替换数组值

2016-12-09
34

我有一个数组

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":[]}]

如何将 JSON 响应的 path 值中的 imagesArray 中的 url 值替换为 1.jpg、5.jpg、7.jpg?

3个回答

这将为您提供一个包含三个对象的数组,其中包含您想要的 url 属性。

var formatedResponse = response.map((r) => { return {url: r.path.split(':')[1]};})
Rob Lynch
2016-12-09
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'));

演示

Ved
2016-12-09

也许你可以做这样的事情:

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));

这是小提琴。

Boky
2016-12-09