score:0

start by reshaping your data. take the data list and turn it into a map of sensor ids to arrays of data (this has nothing to do with react, and should probably be done wherever the ajax response is initially handled); then in your sensors.map, just pass sensordatatoid.get(sensor.id)

the reshaping could look like:

var sensordatatoid = new map();
for(var i = 0; i < data.length; i++) {
  var datum = data[i];
  var sensorid = datum.sensorid;
  if (sensordatatoid.get(sensorid) === undefined) {
    sensordatatoid.set(sensorid, []);
  }

  sensordatatoid.get(sensorid).push(datum)
}

update your setstate call to

_this.setstate({sensorsdata: sensordatatoid});

then your sensors.map :

var rendersensors = () => {
  return sensors.map((sensor) => {
    return <sensor key={sensor.id} name={sensor.name} value={data.get(sensor.id)}/>
  });
};

score:0

how about you iterate through one list and use the 'find' method to find the properties in the other.

var rendersensors = () => {
  return(
  sensors.map((sensor) => {
      var dataitem = datalist.find((data)=>{
          return (data.sensorid === sensor.id)
      }) 
  return(
      <sensor key={dataitem.sensorid} name={sensor.name} value={dataitem.value} time={dataitem.time}/>)      
    })
  )  
};

Related Query

More Query from same tag