我有两个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中合并两个数组,以便我只按照它们插入原始数组的相同顺序从每个数组中获取唯一项?
在数组中对对象进行分组的最有效方法是什么?
例如,给定此对象数组:
[
{ 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) 我想从数组中的每个对象中删除"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)
看起来似乎应该有一种方法来使用原型或其他东西.我不知道.想法?
我有两个对象数组,表示具有标签和值的电子邮件地址:
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?
我想用另一个数组中的对象更新(替换)我的数组中的对象。每个对象具有相同的结构。例如
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对象:
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) 假设我有一个像这样的数组
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) 您将如何更新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)
但我正在寻找一种可以做到这两者的解决方案,如果可能的话,最好使用箭头功能而不是索引.
我有一个数组:
[
{
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
我面临着合并两个数组的问题.我有两个对象数组首先是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)
注意:数组顺序无关紧要.
我有一个对象数组.在循环期间,我为每个条目添加了不同的属性.
我的问题 - 如何确保每个条目都具有每个条目的所有属性?
让我们考虑一下:
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)