如何创建复杂的javascript结构

如何创建复杂的javascript结构,javascript,jquery,Javascript,Jquery,我想创建一个这样的结构: [{title:'Imágenes', extensions:'jpg,gif,png'}, {title:'Todos', extensions:'*'}] 但是我需要从一个字符串创建它,以这种方式(在“js+jquery+php罕见模式”中): 我发现这样的结构: var theStatus = new Object(); function testIt() { theStatus.Home = 'mouseover'; theStatus['Place'

我想创建一个这样的结构:

[{title:'Imágenes', extensions:'jpg,gif,png'}, {title:'Todos', extensions:'*'}]
但是我需要从一个字符串创建它,以这种方式(在“js+jquery+php罕见模式”中):

我发现这样的结构:

var theStatus = new Object();
function testIt() {
  theStatus.Home = 'mouseover';
  theStatus['Place'] = 'click';
  for (var i in theStatus)
  {
    alert('theStatus[\''+i+'\'] is ' + theStatus[i])
  }
}
比如:

$.alerts = {
  verticalOffset: -75,
  horizontalOffset: 0,
  repositionOnResize: true,
  overlayOpacity: .01,
  overlayColor: '#FFF'
}
但我什么都做不了


提前谢谢。

我会这样做:

items = 'Imágenes jpg,gif,png|Todos *'.split("|").map(function (itemString) {
    var parts =  itemString.split(" ");
    return { title: parts[0], extensions: parts[1] };
});
或者,如果您使用jQuery并且需要支持较旧的浏览器,也可以这样做:

items = $.map('Imágenes jpg,gif,png|Todos *'.split("|"), function () {
    var parts =  this.split(" ");
    return { title: parts[0], extensions: parts[1] };
});

你的伪代码很接近

请尝试以下常规javascript:

var str = 'Imágenes jpg,gif,png|Todos *';
var objs = str.split('|');
var objects = [];
for (var i = 0; i < objs.length; i++) {
    var parts = objs[i].split(' ');
    objects.push({ title: parts[0], extensions: parts[1] });
}
// objects is now an array of custom objects in the format you specified.
var str='Imágenes jpg,gif,png | Todos*';
var objs=str.split(“|”);
var对象=[];
对于(var i=0;i
您忘记了第一行的
.split(“|”)
,而本机Javascript
Array.map()
函数仅与较新的浏览器兼容。已修复。在本机不支持map、reduce等的浏览器中,向阵列原型添加map、reduce等非常简单。这些方法非常有用,我建议任何人都要这样做。GitHub上有一个名为ES5 Shim的项目就是这样做的。这种方式也可以,而且似乎更酷:)我将在各种浏览器中尝试“映射”方式,这样我就可以看看它们是否支持这种方式,不管怎样,GregL的方式对我来说将是一个通用的解决方案:)感谢西班牙!!map在IE8及以下版本中不起作用。如果您需要支持,您可以使用jQuery解决方案,也可以包括或使用GregL的解决方案。好的,我只需要ff、chrome y safari(对于设计师),jQuery变体对我来说是最好的,es5垫片比我需要的更多。另一方面,我将这个问题和es5垫片链接保存起来,以备将来使用。我有个问题,现在我有了解决办法。再次非常感谢!
var str = 'Imágenes jpg,gif,png|Todos *';
var objs = str.split('|');
var objects = [];
for (var i = 0; i < objs.length; i++) {
    var parts = objs[i].split(' ');
    objects.push({ title: parts[0], extensions: parts[1] });
}
// objects is now an array of custom objects in the format you specified.