相关疑难解决方法(0)

如何在JavaScript中合并两个数组并重复删除项目

我有两个JavaScript数组:

var array1 = ["Vijendra","Singh"];
var array2 = ["Singh", "Shakya"];
Run Code Online (Sandbox Code Playgroud)

我希望输出为:

var array3 = ["Vijendra","Singh","Shakya"];
Run Code Online (Sandbox Code Playgroud)

输出数组应该删除重复的单词.

如何在JavaScript中合并两个数组,以便我只按照它们插入原始数组的相同顺序从每个数组中获取唯一项?

javascript arrays merge

1256
推荐指数
34
解决办法
100万
查看次数

分组对象数组的最有效方法

在数组中对对象进行分组的最有效方法是什么?

例如,给定此对象数组:

[ 
    { Phase: "Phase 1", Step: "Step 1", Task: "Task 1", Value: "5" },
    { Phase: "Phase 1", Step: "Step 1", Task: "Task 2", Value: "10" },
    { Phase: "Phase 1", Step: "Step 2", Task: "Task 1", Value: "15" },
    { Phase: "Phase 1", Step: "Step 2", Task: "Task 2", Value: "20" },
    { Phase: "Phase 2", Step: "Step 1", Task: "Task 1", Value: "25" },
    { Phase: "Phase 2", Step: "Step 1", Task: "Task 2", Value: "30" …
Run Code Online (Sandbox Code Playgroud)

javascript arrays group-by object underscore.js

424
推荐指数
23
解决办法
39万
查看次数

Javascript:删除数组中所有对象的属性

我想从数组中的每个对象中删除"bad"属性.有没有比使用for循环并从每个对象中删除它更好的方法呢?

var array = [{"bad": "something", "good":"something"},{"bad":"something", "good":"something"},...];

for (var i = 0, len = array.length; i < len; i++) {
  delete array[i].bad;
}
Run Code Online (Sandbox Code Playgroud)

看起来似乎应该有一种方法来使用原型或其他东西.我不知道.想法?

javascript javascript-objects

64
推荐指数
9
解决办法
5万
查看次数

使用Lodash按属性合并对象数组

我有两个对象数组,表示具有标签和值的电子邮件地址:

var original = [
  {
    label: 'private',
    value: 'private@johndoe.com'
  },
  {
    label: 'work',
    value: 'work@johndoe.com'
  }
];

var update = [
  {
    label: 'private',
    value: 'me@johndoe.com'
  },
  {
    label: 'school',
    value: 'schhol@johndoe.com'
  }
];
Run Code Online (Sandbox Code Playgroud)

现在我想按label字段比较和合并两个数组,以便结果如下所示:

var result = [
  {
    label: 'private',
    value: 'me@johndoe.com'
  },
  {
    label: 'work',
    value: 'work@johndoe.com'
  },
  {
    label: 'school',
    value: 'schol@johndoe.com'
  }
]
Run Code Online (Sandbox Code Playgroud)

我怎么能这样做,例如使用lodash

javascript arrays merge lodash

38
推荐指数
1
解决办法
5万
查看次数

JavaScript-合并两个对象数组并根据属性值进行重复数据删除

我想用另一个数组中的对象更新(替换)我的数组中的对象。每个对象具有相同的结构。例如

var origArr = [
  {name: 'Trump', isRunning: true},
  {name: 'Cruz', isRunning: true},
  {name: 'Kasich', isRunning: true}
];
var updatingArr = [
  {name: 'Cruz', isRunning: false},
  {name: 'Kasich', isRunning: false}
];
// desired result:
NEWArr = [
  {name: 'Trump', isRunning: true},
  {name: 'Cruz', isRunning: false},
  {name: 'Kasich', isRunning: false}
];
Run Code Online (Sandbox Code Playgroud)

我已经尝试过concat()和Underscore的_.uniq函数,但是它总是转储较新的对象并从本质上返回原始数组。

有没有一种方法可以覆盖(替换)属性中匹配origArr的对象?updatingArrname

javascript arrays object underscore.js

5
推荐指数
3
解决办法
1万
查看次数

将新数组对象合并到现有对象js

我有这个javascript对象:

var countryArray = [{
 "country" : 'Indonesia',
 "state" : ['DKI','Bali'],
},
 {
 "country" : 'Malaysia',
 "state" : ['Penang','Johor'],
}];

var newArr = [{ "country" : 'Malaysia', "state" : ['Kelantan'] }]
Run Code Online (Sandbox Code Playgroud)

如何合并或添加newArr到相关的CountryArray.

预期结果 :

var countryArray = [{
 "country" : 'Indonesia',
 "state" : ['DKI','Bali'],
},
 {
 "country" : 'Malaysia',
 "state" : ['Penang','Johor','Kelantan'],
}];
Run Code Online (Sandbox Code Playgroud)

javascript

5
推荐指数
2
解决办法
186
查看次数

JS/Es6 如何合并两个数组并覆盖其对象中的值

假设我有一个像这样的数组

let arrayOne = [{text="one", value=0},{text="two", value=0}]
let arrayTwo = [{text="two", value=5}]
Run Code Online (Sandbox Code Playgroud)

因此arrayOne将始终是我想要的整个对象集,但所有值都将为 0。arrayTwo将具有该数组的子集,但始终具有值集。我想要的是,如果arrayTwo对象存在,arrayOne则将值复制到该arrayOne对象。

所以最后我想要

let arrayOne = [{text="one", value=0},{text="two", value=5}]
Run Code Online (Sandbox Code Playgroud)

我做了类似的事情,但我觉得我缺少一些 es6 的魔力。

for (let orig of arrayOne) {
                arrayTwo.find(item => {
                    if (item.value == orig.value) {
                        Object.assign(orig, item);
                    }
                })
            }
Run Code Online (Sandbox Code Playgroud)

javascript ecmascript-6

4
推荐指数
1
解决办法
7078
查看次数

更新或向列表添加值

您将如何更新inventory(基于名称)或添加名称未找到.

var inventory = [
    {name: 'apples', quantity: 2},
    {name: 'bananas', quantity: 0},
    {name: 'cherries', quantity: 5}
];
Run Code Online (Sandbox Code Playgroud)

例如,以下内容将更新库存:

const fruit = {name: 'bananas', quantity: 1}
inventory = inventory.map(f => f.name===fruit.name ? fruit : f);
Run Code Online (Sandbox Code Playgroud)

这可以用来添加到库存:

const fruit = {name: 'oranges', quantity: 2}
if (!inventory.find(f => f.name===fruit.name)) inventory.push(fruit)
Run Code Online (Sandbox Code Playgroud)

但我正在寻找一种可以做到这两者的解决方案,如果可能的话,最好使用箭头功能而不是索引.

javascript

1
推荐指数
1
解决办法
55
查看次数

根据Javascript中的通用值合并同一数组中的对象

我有一个数组:

[
  {
    assignmentId:17,
    email:"john.smith@email.com"
    expectation: "Make sure to proofread!",
    firstName:"John"
    id:23
    ignoreForFeedback: true
    lastName:"Smith"
    level:2
    levelFraction:null
    score:35
  },
  {
    assignmentId:17
    countsPerCategory: Array(4)
    email:"john.smith@email.com"
    firstName:"John"
    frequentErrors: Array(5)
    id:23
    ignoreForGrading: true
    lastName:"Smith"
  },
  {
    assignmentId:17,
    email:"cl@email.com"
    expectation: "cite sources",
    firstName:"Cindy"
    id:45
    ignoreForFeedback: true
    lastName:"Lee"
    level:2
    levelFraction:null
    score:32
  },
  {
    assignmentId:17
    countsPerCategory: Array(4)
    email:"cl@email.com"
    firstName:"Cindy"
    frequentErrors: Array(5)
    id:45
    ignoreForGrading: true
    lastName:"Lee"
  }
]
Run Code Online (Sandbox Code Playgroud)

我想将具有相同“ id”的对象组合到数组中的相同对象中。它们的公用密钥也应该组合(例如:“ firstName”,“ email”)。有人可以建议最好的方法吗?使用ES6或Lodash

javascript arrays lodash

1
推荐指数
1
解决办法
2608
查看次数

在不使用lodash的情况下合并两个数组的条件

我面临着合并两个数组的问题.我有两个对象数组首先是prev值有旧值而另一个有更新值.我希望结果数组包含prev数组的所有对象,其中数组的更新值接下来,并且在下一个数组中也有对象.

例:

var prev = [{id: 1, val: 'abc'}, {id: 2, val: 'pqr'}];
var next = [{id: 1, val: 'nextVal'}, {id: 3, val: 'xyz'}];
Run Code Online (Sandbox Code Playgroud)

预期

mergeOutput = [
  {id: 1, val: 'nextVal'}, // value is updated 
  {id: 2, val: 'pqr'}, 
  {id: 3, val: 'xyz'}
]
Run Code Online (Sandbox Code Playgroud)

注意:数组顺序无关紧要.

javascript arrays

1
推荐指数
1
解决办法
357
查看次数

JavaScript扩展数组

我有一个对象数组.在循环期间,我为每个条目添加了不同的属性.

我的问题 - 如何确保每个条目都具有每个条目的所有属性?

让我们考虑一下:

var myArray = [{A: 1}, {B: 2}, {C: 3}];
Run Code Online (Sandbox Code Playgroud)

现在我想运行一些优雅的单行将这个数组转换成:

[{A: 1, B:2, C: 3}, {A: 1, B:2, C: 3}, {A: 1, B:2, C: 3}]
Run Code Online (Sandbox Code Playgroud)

javascript arrays jquery underscore.js

0
推荐指数
1
解决办法
2520
查看次数