当前位置:  开发笔记 > 编程语言 > 正文

javascript数组推送问题

如何解决《javascript数组推送问题》经验,为你挑选了1个好方法。

我有以下对象:

Configs = {};
Configs['category'] = [];
Configs['category']['prod1'] = [];
Configs['category']['prod1'].hosts ={
  'table': {
    'count': 'total_remaining',
    'specs': [
      {
        'name': 'Test 1',
        'code': 'BrandName.Cat.Code.[X].Price'
      }
    ]
  }
}; 

我正在尝试使用以下代码创建要从数据库中请求的元素数组:

var data = Configs["category"]["prod1"].hosts.table;
var count = [data.count];
var names = data.specs;
var namesArray = names.map(function(names) {
  var str = names['code'];
  var requiredPortion = str.split("[X]");
  var newStr = requiredPortion[0];
      return newStr;
  });
requestData = namesArray.reduce(function(a,b){if(a.indexOf(b)<0)a.push(b);return a;},[]); //remove duplicates
requestData.push(count);
console.log(count);
console.log(requestData);

所需的输出是:

["BrandName.Cat.Code.", "total_remaining"] 

但是,当执行我的代码时,我得到以下输出:

["BrandName.Cat.Code.", Array[1]]

我为此附上了一个小提琴链接。我猜问题出在数组推函数的用法上。请帮忙。



1> Abhijith Sas..:

您只需要删除count变量初始化外部的方括号即可。尝试:

var count = data.count;

代替:

var count = [data.count];

小提琴更新。

推荐阅读
殉情放开那只小兔子
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有