Javascript平面列表到数组连接
我正在努力解决一个特定的Javascript问题,我希望有人能提供帮助 我有一个名称和值对列表,例如: 苹果50Javascript平面列表到数组连接,javascript,Javascript,我正在努力解决一个特定的Javascript问题,我希望有人能提供帮助 我有一个名称和值对列表,例如: 苹果50 香蕉60 葡萄70 苹果40 橙色30 我试图用这些值创建一个Javascript对象: var myObj = {}; 然后对于列表中的所有项目: myObj[name] = value; 但正如您所看到的,一些名称多次出现在列表中(例如Apple),因此在本例中,我希望通过将对象中的值转换为数组并将新值添加到数组中,将其添加到对象的相同属性中 因此,myObj将包含: 苹果=
香蕉60
葡萄70
苹果40
橙色30
我试图用这些值创建一个Javascript对象:
var myObj = {};
然后对于列表中的所有项目:
myObj[name] = value;
但正如您所看到的,一些名称多次出现在列表中(例如Apple),因此在本例中,我希望通过将对象中的值转换为数组并将新值添加到数组中,将其添加到对象的相同属性中
因此,myObj将包含:
苹果=[50,40]香蕉=60
葡萄=70
橙色=30
有人帮忙吗 谢谢 AJ像这样:
var obj = { };
for (var i = 0; i < keys.length; i++) {
var k = keys[i];
if (k in obj) {
if (obj[k] instanceof Array) {
obj[k].push(values[i]);
else
obj[k] = [ obj[k], values[i] ];
} else
obj[k] = values[i];
}
var obj={};
对于(变量i=0;i
如果某些值已经是数组,它们将被展平,而不是嵌套。如下所示:
var obj = { };
for (var i = 0; i < keys.length; i++) {
var k = keys[i];
if (k in obj) {
if (obj[k] instanceof Array) {
obj[k].push(values[i]);
else
obj[k] = [ obj[k], values[i] ];
} else
obj[k] = values[i];
}
var obj={};
对于(变量i=0;i
如果某些值已经是数组,它们将被展平,而不是嵌套。我的方式
var MyObj = function(){};
MyObj.prototype.addItem = function(key, val){
var typ = typeof this[key];
switch (typ){
case 'undefined':
this[key] = val;
break;
case 'object':
this[key].push(val);
break;
default:
this[key] = [this[key], val];
break;
}
}
var myObj = new MyObj;
myObj.addItem('Apple', 50);
myObj.addItem('Apple', 70);
console.log(myObj);
我的方式
var MyObj = function(){};
MyObj.prototype.addItem = function(key, val){
var typ = typeof this[key];
switch (typ){
case 'undefined':
this[key] = val;
break;
case 'object':
this[key].push(val);
break;
default:
this[key] = [this[key], val];
break;
}
}
var myObj = new MyObj;
myObj.addItem('Apple', 50);
myObj.addItem('Apple', 70);
console.log(myObj);
如果对象以该名称存在,为什么不将所有值作为数组,然后向其推送新值?如果对象以该名称存在,为什么不将所有值作为数组,然后向其推送新值?可能会重复两次、三次,谁知道会重复多少次。这将在一个数组内、另一个数组内和以此类推。它可能重复两次、三次,谁知道还会重复多少次。这将在一个数组中生成一个数组,在另一个数组中生成一个数组,以此类推。。