Javascript 在每个错误的值下划线?
有人能帮我理解为什么我没有得到预期的输出吗。我有以下代码Javascript 在每个错误的值下划线?,javascript,json,underscore.js,Javascript,Json,Underscore.js,有人能帮我理解为什么我没有得到预期的输出吗。我有以下代码 var targetArray = []; var tempVar = {}; var json = [ { id:1, available:false, value:'vodka', quantity:1 }, { id:2, available:true, value:'WINE', quantity:13 }, { id:2, available:true, value:'WINE', quantity:13
var targetArray = [];
var tempVar = {};
var json = [
{ id:1, available:false, value:'vodka', quantity:1 },
{ id:2, available:true, value:'WINE', quantity:13 },
{ id:2, available:true, value:'WINE', quantity:13 },
{ id:3, available:true, value:'gin', quantity:42 },
{ id:4, available:true, value:'scotch', quantity:21 },
{ id:5, available:true, value:'WHISKEY', quantity:123 },
{ id:100, available:true, value:'schnapps', quantity:5 },
{ id:120, available:false, value:'beer', quantity:0 },
{ id:2, available:true, value:'WINE', quantity:13 },
{ id:999, available:true, value:'rum', quantity:55 },
{ id:1, available:false, value:'Vodka', quantity:1 },
{ id:13, available:true, value:'brandy', quantity:3 },
{ id:42, available:true, value:'Tequila', quantity:88 }
];
_.each(json, function(value){
tempVar.value = value.value;
tempVar.available = value.available;
targetArray.push(tempVar);
});
alert(JSON.stringify(targetArray));
我的输出如下
[{"value":"Tequila","available":true},{"value":"Tequila","available":true},{"value":"Tequila","available":true},{"value":"Tequila","available":true},{"value":"Tequila","available":true},{"value":"Tequila","available":true},{"value":"Tequila","available":true},{"value":"Tequila","available":true},{"value":"Tequila","available":true},{"value":"Tequila","available":true},{"value":"Tequila","available":true},{"value":"Tequila","available":true},{"value":"Tequila","available":true}]
当我尝试此操作时,它会像预期的那样提醒我每个值
_.each(json, function(value){
alert(JSON.stringify(value.value));
});
我错过什么了吗
这是小提琴
提前感谢。您正在推同一个对象。 而是每次创建一个新对象,如下所示:
_.each(json, function(value){
targetArray.push({value: value.value, available: value.available });
});
对于这种情况,您也可以使用.map
方法:
var json = [
{ id:1, available:false, value:'vodka', quantity:1 },
{ id:2, available:true, value:'WINE', quantity:13 },
{ id:2, available:true, value:'WINE', quantity:13 },
{ id:3, available:true, value:'gin', quantity:42 },
{ id:4, available:true, value:'scotch', quantity:21 },
{ id:5, available:true, value:'WHISKEY', quantity:123 },
{ id:100, available:true, value:'schnapps', quantity:5 },
{ id:120, available:false, value:'beer', quantity:0 },
{ id:2, available:true, value:'WINE', quantity:13 },
{ id:999, available:true, value:'rum', quantity:55 },
{ id:1, available:false, value:'Vodka', quantity:1 },
{ id:13, available:true, value:'brandy', quantity:3 },
{ id:42, available:true, value:'Tequila', quantity:88 }
];
var targetArray = json.map(function (e) {
return { value: e.value, available: e.available };
});
你推的是同一个物体。 而是每次创建一个新对象,如下所示:
_.each(json, function(value){
targetArray.push({value: value.value, available: value.available });
});
对于这种情况,您也可以使用.map
方法:
var json = [
{ id:1, available:false, value:'vodka', quantity:1 },
{ id:2, available:true, value:'WINE', quantity:13 },
{ id:2, available:true, value:'WINE', quantity:13 },
{ id:3, available:true, value:'gin', quantity:42 },
{ id:4, available:true, value:'scotch', quantity:21 },
{ id:5, available:true, value:'WHISKEY', quantity:123 },
{ id:100, available:true, value:'schnapps', quantity:5 },
{ id:120, available:false, value:'beer', quantity:0 },
{ id:2, available:true, value:'WINE', quantity:13 },
{ id:999, available:true, value:'rum', quantity:55 },
{ id:1, available:false, value:'Vodka', quantity:1 },
{ id:13, available:true, value:'brandy', quantity:3 },
{ id:42, available:true, value:'Tequila', quantity:88 }
];
var targetArray = json.map(function (e) {
return { value: e.value, available: e.available };
});
你推的是同一个物体。 而是每次创建一个新对象,如下所示:
_.each(json, function(value){
targetArray.push({value: value.value, available: value.available });
});
对于这种情况,您也可以使用.map
方法:
var json = [
{ id:1, available:false, value:'vodka', quantity:1 },
{ id:2, available:true, value:'WINE', quantity:13 },
{ id:2, available:true, value:'WINE', quantity:13 },
{ id:3, available:true, value:'gin', quantity:42 },
{ id:4, available:true, value:'scotch', quantity:21 },
{ id:5, available:true, value:'WHISKEY', quantity:123 },
{ id:100, available:true, value:'schnapps', quantity:5 },
{ id:120, available:false, value:'beer', quantity:0 },
{ id:2, available:true, value:'WINE', quantity:13 },
{ id:999, available:true, value:'rum', quantity:55 },
{ id:1, available:false, value:'Vodka', quantity:1 },
{ id:13, available:true, value:'brandy', quantity:3 },
{ id:42, available:true, value:'Tequila', quantity:88 }
];
var targetArray = json.map(function (e) {
return { value: e.value, available: e.available };
});
你推的是同一个物体。 而是每次创建一个新对象,如下所示:
_.each(json, function(value){
targetArray.push({value: value.value, available: value.available });
});
对于这种情况,您也可以使用.map
方法:
var json = [
{ id:1, available:false, value:'vodka', quantity:1 },
{ id:2, available:true, value:'WINE', quantity:13 },
{ id:2, available:true, value:'WINE', quantity:13 },
{ id:3, available:true, value:'gin', quantity:42 },
{ id:4, available:true, value:'scotch', quantity:21 },
{ id:5, available:true, value:'WHISKEY', quantity:123 },
{ id:100, available:true, value:'schnapps', quantity:5 },
{ id:120, available:false, value:'beer', quantity:0 },
{ id:2, available:true, value:'WINE', quantity:13 },
{ id:999, available:true, value:'rum', quantity:55 },
{ id:1, available:false, value:'Vodka', quantity:1 },
{ id:13, available:true, value:'brandy', quantity:3 },
{ id:42, available:true, value:'Tequila', quantity:88 }
];
var targetArray = json.map(function (e) {
return { value: e.value, available: e.available };
});