将Javascript对象值增量为;加入“;阵列
我有一个javascript对象:将Javascript对象值增量为;加入“;阵列,javascript,jquery,Javascript,Jquery,我有一个javascript对象: {"Vanilla": 36, "Chocolate": 50, "Stracciatella": 24, "Coffee": 18} 我想将此数组“添加”到其中: ["Vanilla", "Amarena", "Chocolate", "Pistachio"] 我想要的结果是: { "Vanilla": 37, "Chocolate": 51, "Stracciatella": 24, "Coffee": 18,
{"Vanilla": 36, "Chocolate": 50, "Stracciatella": 24, "Coffee": 18}
我想将此数组“添加”到其中:
["Vanilla", "Amarena", "Chocolate", "Pistachio"]
我想要的结果是:
{
"Vanilla": 37,
"Chocolate": 51,
"Stracciatella": 24,
"Coffee": 18,
"Amarena": 1,
"Pistachio": 1
}
这就是我尝试过的:
var me = ["Vanilla", "Amarena", "Chocolate", "Pistachio"]
var all = {
"Vanilla": 36,
"Chocolate": 50,
"Stracciatella": 24,
"Coffee": 18
}
var keys = Object.keys(all);
for (var i = 0; i < me.length; i++) {
if (me[i] in keys) {
console.log("keys:" + keys + " - " + me[i] + " in keys");
} else {
console.log("keys:" + keys + " - " + me[i] + " not in keys");
};
}
console.log(keys);
var me=[“香草”、“阿玛瑞娜”、“巧克力”、“开心果”]
var all={
“香草”:36,
“巧克力”:50,
“Stracciatella”:24,
“咖啡”:18
}
var keys=Object.keys(全部);
对于(变量i=0;i
这很有效
你的小提琴中的第一部分代码
var me = ["Vanilla", "Amarena", "Chocolate", "Pistachio"]
var all = {
"Vanilla": 36,
"Chocolate": 50,
"Stracciatella": 24,
"Coffee": 18
}
现在答案是:
me.forEach(function(key) { // forEach iterates through an array
all[key] = (all[key] || 0) + 1; // create new item if it doesn't exist
});
forEach()方法对每个数组元素执行一次提供的函数
有关.forEach的更详细描述,请参见上述描述的来源
由于这个问题被标记为jQuery
,让我们添加一些jQuery
代码,只是为了好玩
$.each(me, function(unusedIndex, key) {
all[key] = (all[key] || 0) + 1;exist
});
jQuery.each()一个通用迭代器函数,可用于无缝迭代对象和数组。数组和具有length属性的类似数组的对象(例如函数的arguments对象)通过数值索引从0到length-1进行迭代。其他对象通过其命名属性进行迭代。-来源
这是我在自娱自乐-这很管用
你的小提琴中的第一部分代码
var me = ["Vanilla", "Amarena", "Chocolate", "Pistachio"]
var all = {
"Vanilla": 36,
"Chocolate": 50,
"Stracciatella": 24,
"Coffee": 18
}
现在答案是:
me.forEach(function(key) { // forEach iterates through an array
all[key] = (all[key] || 0) + 1; // create new item if it doesn't exist
});
forEach()方法对每个数组元素执行一次提供的函数
有关.forEach的更详细描述,请参见上述描述的来源
由于这个问题被标记为jQuery
,让我们添加一些jQuery
代码,只是为了好玩
$.each(me, function(unusedIndex, key) {
all[key] = (all[key] || 0) + 1;exist
});
jQuery.each()一个通用迭代器函数,可用于无缝迭代对象和数组。数组和具有length属性的类似数组的对象(例如函数的arguments对象)通过数值索引从0到length-1进行迭代。其他对象通过其命名属性进行迭代。-来源
这是我在玩我自己-以下代码允许您根据数组中的键来增加对象
股票
中的值股票更新
:
var stockUpdate = ["Vanilla", "Amarena", "Chocolate", "Pistachio"];
var stock = {
"Vanilla": 36,
"Chocolate": 50,
"Stracciatella": 24,
"Coffee": 18
};
for (var i=0; i < stockUpdate.length; i++) {
var stockType = stockUpdate[i];
if (stock[stockType] === undefined) {
stock[stockType] = 0;
}
stock[stockType]++;
}
var stockUpdate=[“香草”、“阿玛莲娜”、“巧克力”、“开心果”];
var股票={
“香草”:36,
“巧克力”:50,
“Stracciatella”:24,
“咖啡”:18
};
对于(var i=0;i
下面的代码允许您根据数组中的键来增加对象库存中的值stockUpdate
:
var stockUpdate = ["Vanilla", "Amarena", "Chocolate", "Pistachio"];
var stock = {
"Vanilla": 36,
"Chocolate": 50,
"Stracciatella": 24,
"Coffee": 18
};
for (var i=0; i < stockUpdate.length; i++) {
var stockType = stockUpdate[i];
if (stock[stockType] === undefined) {
stock[stockType] = 0;
}
stock[stockType]++;
}
var stockUpdate=[“香草”、“阿玛莲娜”、“巧克力”、“开心果”];
var股票={
“香草”:36,
“巧克力”:50,
“Stracciatella”:24,
“咖啡”:18
};
对于(var i=0;i
你就快到了
var me = ["Vanilla", "Amarena", "Chocolate", "Pistachio"]
var all = {
"Vanilla": 36,
"Chocolate": 50,
"Stracciatella": 24,
"Coffee": 18
}
var keys = Object.keys(all);
for (var i = 0; i < me.length; i++) {
if (keys.indexOf(me[i]) >= 0) {
console.log("keys:" + keys + " - " + me[i] + " in keys \n");
all[me[i]]++;
} else {
console.log("keys:" + keys + " - " + me[i] + " not in keys \n");
all[me[i]] = 1;
};
}
console.log(all);
reduce()方法对累加器和数组的每个值(从左到右)应用一个函数,将其减少为单个值
在这种情况下,我从左到右减少newItems
列表,计算items
对象中的计数,并返回计算出的项目。您就快到了
var me = ["Vanilla", "Amarena", "Chocolate", "Pistachio"]
var all = {
"Vanilla": 36,
"Chocolate": 50,
"Stracciatella": 24,
"Coffee": 18
}
var keys = Object.keys(all);
for (var i = 0; i < me.length; i++) {
if (keys.indexOf(me[i]) >= 0) {
console.log("keys:" + keys + " - " + me[i] + " in keys \n");
all[me[i]]++;
} else {
console.log("keys:" + keys + " - " + me[i] + " not in keys \n");
all[me[i]] = 1;
};
}
console.log(all);
reduce()方法对累加器和数组的每个值(从左到右)应用一个函数,将其减少为单个值
在本例中,我从左到右减少了newItems
列表,计算items
对象中的计数,并返回计算出的项目。现在是使用以下内容的好时机:
这是一个很好的时机:
欢迎来到堆栈溢出!请阅读,环顾四周,并通读,特别是与您的问题相关的任何代码必须在您的问题中,而不仅仅是链接。链接会腐烂,使问题及其答案在将来对人们毫无用处,人们不应该跟随一些随机链接来帮助你。如果这个问题没有意义,没有链接就无法回答,那么这个网站就不适合。相反,把问题放进去。欢迎来到堆栈溢出!请阅读,环顾四周,并通读,特别是与您的问题相关的任何代码必须在您的问题中,而不仅仅是链接。链接会腐烂,使问题及其答案在将来对人们毫无用处,人们不应该跟随一些随机链接来帮助你。如果这个问题没有意义,没有链接就无法回答,那么这个网站就不适合。尽管这个答案更优雅,但它没有考虑到OP显然具有的编码级别。因此,来自@anthony blackshaw的答案更适合作为这篇特定文章的答案。@Hurtz,所以把这一级别提高一点。数组方法和简单循环一样是原始知识。两者都不是量子力学。所以这个答案和for循环一样有意义。@JaromandaX关心您详细说明什么是.forEach
,以及它是如何工作的吗?不管怎样,答案很好,省略注释。使用all[key]++
再删除一个字节。我同意。除了评论之外,这是一个非常好的方法。谢谢你详细介绍机械师+1尽管这个答案更加优雅,但它没有考虑到OP显然具有的编码级别。因此,来自@anthony blackshaw的答案更适合作为这篇特定文章的答案。@Hurtz,所以把这一级别提高一点。数组方法和简单循环一样是原始知识。两者都不是量子力学。所以这个答案是