Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/jsf/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 从现有阵列创建阵列_Javascript_Arrays_Join - Fatal编程技术网

Javascript 从现有阵列创建阵列

Javascript 从现有阵列创建阵列,javascript,arrays,join,Javascript,Arrays,Join,我想通过提取其他数组的日期,然后用逗号将值分隔成字符串来创建一个数组 array.push({date:created_at,username:user}); for (i in array) { var combined=new array(); combined = array[i].date; } console.log(combined); 我是javascript新手,很难理解数组。谢谢

我想通过提取其他数组的日期,然后用逗号将值分隔成字符串来创建一个数组

      array.push({date:created_at,username:user});
      for (i in array) {
      var combined=new array();
      combined = array[i].date;
                }   
      console.log(combined);
我是javascript新手,很难理解数组。谢谢!!还有谁能给我推荐一本关于javascript的好书吗?

试试这个

var originalArray = [{date:"2012-01-01", username: "first"}, {date:"2012-01-02", username: "second"}];

// First step: Get a dateArray with only the dates
var dateArray = [];
for (var i in originalArray) {
    dateArray.push(originalArray[i].date);
}   

// Or if you prefer to cut a few lines
// dateArray = originalArray.map(function(x) { return x.date; } );

// Second step: Get it as a comma separated string
var datesString = dateArray.join(",");

console.log(dateArray); // ["2012-01-01","2012-01-02"]
console.log(datesString); // 2012-01-01,2012-01-02
其中一本比较流行的书是道格拉斯·克罗克福德的《Javascript的好部分》

我个人偏爱Javascript的好部分,但在编程书籍上有一个完整的社区wiki。至于你的问题,如果你想使用一个字符串,你需要为组合变量使用一个字符串而不是数组

array.push({date:created_at,username:user});
var combined = array.map(function(a) { return a.date; }).join(", ");
当然有更好的方法,但这只是一个简单的例子。通过与字符串连接,它隐式地将数组[i].date强制转换为字符串(如果尚未转换为字符串)

编辑:修正了我的代码没有那么糟糕

以下是代码:

var firstArray = new Array(new Date(), "hello", "something", new Date());
var combined = new Array();

for(i in firstArray) {
   if(firstArray[i] instanceof Date) {
      combined[combined.length] = firstArray[i];
   }
 }

 var theString = combined.join(",");

 alert(combined.length);
 alert(theString);

在for循环的每次迭代中都要重新声明数组。还有,试试看。加入比我的垃圾好多了。哦,我想今天是星期五。当我们谈论干净的代码时,今天是星期五。让我们用array.map来庆祝吧!第一步可能是:dateArray=originalArray.map(函数(x){return x.date;});一行代码(虽然不能推荐):[{date:“2012-01-01”,username:“first”},{date:“2012-01-02”,username:“second”}];哈哈哈,是的,我也有同样的想法。整洁,但看起来很糟糕。不过,链接map和join并不太糟糕。