如何添加条件以比较两个数组并更改匹配数组的值

我想比较两个数组,因为我想更改匹配ID的值。

请参考波纹管阵列的结果。

let array1 =[
  {
    "id": 1,"value": false
  },{
    "id": 2,{
    "id": 3,"value": true
  },{
    "id": 4,"value": false
  }
]


let array2 = [
  {
    "id": 1
  },{
    "id": 4
  }
]

我想使用下划线库比较此数组并返回比较数组值的结果,如下面的数组

result = [
  {
    "id": 1,"value": true
  }
]
GAOWEI324 回答:如何添加条件以比较两个数组并更改匹配数组的值

您可以使用Array.prototype.map()

<script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.5.17/vue.js"></script>
<div id="app">
  <div v-for="n in y" :key="n" style="display:flex">
    <div v-for="i in x" :key="i">
      <input type="number" v-model.number="array[n - 1][i - 1]">
    </div>
  </div>
  {{array}}
</div>

,

您可以尝试以下方法:

std::unique_ptr<SomeLargeType>
make_something(bool cond,bool cond23)
{
    if (cond)
        return std::make_unique<SomeLargeType>(123);
    else if (cond23)
        return std::make_unique<SomeLargeType>(3.14);
    else
        return nullptr;
}

// usage
std::unique_ptr<SomeLargeType> var = make_something(cond,cond2 || !cond3);
,

您可以将lodash.maplodash.some一起使用以检查对象并更新value

let array1 =[ { "id": 1,"value": false },{ "id": 2,{ "id": 3,"value": true },{ "id": 4,"value": false } ],array2 = [ { "id": 1 },{ "id": 4 } ],result = _.map(array1,o => ({...o,value : _.some(array2,({id}) => id === o.id) || o.value}));
console.log(result);
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.15/lodash.min.js"></script>

,

使用地图的另一种解决方案

OKNegotiatedResult

本文链接:https://www.f2er.com/3166955.html

大家都在问