这可能是一个重复的问题,但我在第二部分遇到了麻烦。
我有
var x = {2000: 3, 2001: 3, 2003: 2, 2006: 1, 2007: 1, 2008: 1, 2010: 1, 2012: 1, 2014: 2}
var y = ["2000", "2001", "2002", "2003", "2004", "2005", "2006", "2007, "2008", "2009", "2010", "2011", "2012", "2013", "2014"]
这就是我想做的事。
首先,检查y
中x
不存在的内容,将隐含年份值作为要比较的值。
然后,对于每个差异(例如,您可以看到,x
中不存在2002,2004或2005),我想将缺失的年份添加到x
, 0
的关键。
答案 0 :(得分:1)
您可以循环播放y
变量并检查x[key]
是否为undefined
。如果是,则指定0.
var x = {2000: 3, 2001: 3, 2003: 2, 2006: 1, 2007: 1, 2008: 1, 2010: 1, 2012: 1, 2014: 2};
var y = ["2000", "2001", "2002", "2003", "2004", "2005", "2006", "2007", "2008", "2009", "2010", "2011", "2012", "2013", "2014"]
y.forEach(v=>{
if ( x[ v ] === undefined ) x[ v ] = 0;
});
console.log( x );
或者你可以缩短为
var x = {2000: 3, 2001: 3, 2003: 2, 2006: 1, 2007: 1, 2008: 1, 2010: 1, 2012: 1, 2014: 2};
var y = ["2000", "2001", "2002", "2003", "2004", "2005", "2006", "2007", "2008", "2009", "2010", "2011", "2012", "2013", "2014"]
y.forEach(v => x[v] = x[v] || 0);
console.log(x);