相关疑难解决方法(0)

在lodash中有一个函数来替换匹配的项目

我想知道在lodash中是否有一个更简单的方法来替换JavaScript集合中的项目?(可能重复,但我不明白那里的答案:)

我看了他们的文档但找不到任何东西

我的代码是:

var arr = [{id: 1, name: "Person 1"}, {id:2, name:"Person 2"}];
// Can following code be reduced to something like _.XX(arr, {id:1}, {id:1, name: "New Name"});
_.each(arr, function(a, idx){
  if(a.id === 1){
    arr[idx] = {id:1, name: "Person New Name"};
    return false;
  }
});

_.each(arr, function(a){
  document.write(a.name);
});
Run Code Online (Sandbox Code Playgroud)

更新: 我正在尝试替换的对象有许多属性,如

{id:1,Prop1:...,Prop2:...,依此类推}

解:

感谢dfsq,但我在lodash中找到了一个合适的解决方案,似乎工作正常并且非常整洁,我把它放在mixin中,因为我在很多地方都有这个要求.JSBin

var update = function(arr, key, newval) {
  var match = _.find(arr, key);
  if(match)
    _.merge(match, newval);
  else
    arr.push(newval);    
};

_.mixin({ '$update': …
Run Code Online (Sandbox Code Playgroud)

javascript lodash

113
推荐指数
8
解决办法
11万
查看次数

如何在javascript(lodash)中替换对象数组中的对象

我有以下对象数组:

var arr = [
  {
    id    : "a1",
    guid  : "sdfsfd",
    ...
    value : "abc",
    status: false
  },
  {
    id    : "a2",
    guid  : "sdfsfd",
    ...
    value : "def",
    status: true
  },
  ...
]
Run Code Online (Sandbox Code Playgroud)

我有这个对象:

var obj = {
  id      : "a1",
  guid    : "sdfsfd",
  ...
  value   : "xyz",
  status  :  true
}
Run Code Online (Sandbox Code Playgroud)

我需要用"id"相同的对象替换数组中的对象.因此得到的数组将是:

var arr = [
  {
    id    : "a1",
    guid  : "sdfsfd",
    ...
    value : "xyz",
    status: true
  },
  {
    id    : "a2",
    guid  : "sdfsfd", …
Run Code Online (Sandbox Code Playgroud)

javascript lodash

4
推荐指数
2
解决办法
6894
查看次数

标签 统计

javascript ×2

lodash ×2