2017-04-25 52 views
-1

做一个JSON随着JS我得到这个从Array

var monthNames = ['jan', 'fev', 'mar', 'abr', 'mai', 'jun', 'jul', 'ago', 'set', 'out', 'nov', 'dez'];

我这样做是为了获得实际的月格式:

var formatter = new Intl.DateTimeFormat("pt-BR", { month: "short" }), 
month1 = formatter.format(new Date()) ; 
var posicao = monthNames.indexOf(month1); 
var mesesSelecionados = monthNames.slice(posicao, 12); 
var mesesSelecionadosJson = {}; 
var arrayteste=[]; 
    for (i =0 ; i< mesesSelecionados.length; i++){ 
     var teste = mesesSelecionados[i].toString(); 
     mesesSelecionadosJson = JSON.stringify({ Mes : mesesSelecionados[i]}, null ); 

       arrayteste.push(mesesSelecionadosJson); 

       console.log(arrayteste); 
       console.log(mesesSelecionadosJson); 
       }; 

所以我尝试得到这样的: [{Mes:"abr"}, {Mes:"mai"}...](带所有数值)

任何人都可以帮助我?

回答

1

您可以将阵列映射为对象:

var monthNames = ['jan', 'fev', 'mar', 'abr', 'mai', 'jun', 'jul', 'ago', 'set', 'out', 'nov', 'dez']; 
 
var objectYouWant = monthNames.map(function(month) { return {Mes: month}; }); 
 
console.log(objectYouWant); 
 
// To convert to json 
 
var jsonYouThinkYouWant = JSON.stringify(objectYouWant); 
 
console.log(jsonYouThinkYouWant); 
 

 
// Object you think you want. 
 
var objectYouThinkIsDifferent = [{Mes:'jan'}, {Mes:'fev'}, {Mes:'mar'}, {Mes:'abr'}, {Mes:'mai'}, {Mes:'jun'}, {Mes:'jul'}, {Mes:'ago'}, {Mes:'set'}, {Mes:'out'}, {Mes:'nov'}, {Mes:'dez'}]; 
 
// Notice that the object is the same as the object my solution provides in the log. 
 
console.log(objectYouThinkIsDifferent);

+0

之拳,ü给我:[{ “的Mes”: “扬”},{ “的Mes”: “FEV”},{ “的Mes”: “三月”},{ “的Mes”: “ABR”},{ “的Mes”: “麦”},{ “的Mes”: “君”},{ “的Mes”: “七月”},{ “的Mes”: “前”},{ “的Mes”: “set”},{“Mes”:“out”},{“Mes”:“nov”},{“Mes”:“dez”}] –

+0

我需要的是[{Mes:“jan” {的Mes: “FEV”},{的Mes: “擦伤”},{的Mes: “ABR”},{的Mes: “麦”},{的Mes: “君”},{的Mes: “月”},{的Mes :“ago”},{Mes:“set”},{Mes:“out”},{Mes:“nov”},{Mes:“dez”}] –

+0

@DiogoGuilhen您刚才评论的两个对象是相同的。如果您要编写'array [0] .mes',那么这两个数组的行为将相同。 – Ken

0

我做的是这样的: 并得到了我想要的东西过滤器!

var d = new Date(); 
var ds = d.toLocaleString().substring(6,10); 
var formatter = new Intl.DateTimeFormat("pt-BR", { month: "short" }), 
     month1 = formatter.format(new Date()) ; 
var monthNames = ['jan', 'fev', 'mar', 'abr', 'mai', 'jun', 'jul', 'ago', 'set', 'out', 'nov', 'dez']; 
var posicao = monthNames.indexOf(month1); 
var mesesSelecionados = monthNames.slice(posicao, 12); 

app1.field('[Ano]').selectMatch(ds, true); 
app1.field('[Tempo]').selectMatch("Mes", true); 
app1.field('[Compara]').selectMatch("Escala", true); 
app1.field('[messtr]').selectValues(mesesSelecionados, true);