Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/436.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_Jquery - Fatal编程技术网

Javascript 将对象中的数组传递到函数中

Javascript 将对象中的数组传递到函数中,javascript,jquery,Javascript,Jquery,我想将一个对象作为参数传递到函数中,并将对象的属性赋值给该对象的属性,这样这些属性就可以在函数外部访问。但我不清楚这是如何做到的 起初我认为可以使用回调来完成,但我清楚地知道JavaScript并不是这样工作的。我最终设法让它工作起来,而未定义的错误消息就消失了。但是我现在想通过函数传递一个数组。如何做到这一点?这是我目前为止所做的,但似乎不起作用 var journey = {}; journey['waypointsArrayItem'] = new Array(); setupAddres

我想将一个对象作为参数传递到函数中,并将对象的属性赋值给该对象的属性,这样这些属性就可以在函数外部访问。但我不清楚这是如何做到的

起初我认为可以使用回调来完成,但我清楚地知道JavaScript并不是这样工作的。我最终设法让它工作起来,而未定义的错误消息就消失了。但是我现在想通过函数传递一个数组。如何做到这一点?这是我目前为止所做的,但似乎不起作用

var journey = {};
journey['waypointsArrayItem'] = new Array();
setupAddress(journey)

function setupAddress(journey) {
    var waypointsItem = $('.timeline-item.active-item > .timeline-status > .waypoints').text().substring(4);
    journey.waypointsArrayItem = [];
    journey.waypointsArrayItem = listToArray(waypointsItem, ', ');
    for (var i = 0; i < waypointsArray.length; i++) {
        journey.waypointsArrayItem[i] = journey.waypointsArrayItem[i];
    }
}
var旅程={};
旅程['waypointsArrayItem']=新数组();
地址(旅程)
功能设置地址(旅程){
var waypointsItem=$('.timeline-item.active-item>.timeline status>.waypoints').text().substring(4);
Travely.waypointsArrayItem=[];
traveley.waypointsArrayItem=listToArray(waypointsItem,,);
对于(变量i=0;i
为函数中的对象指定属性与为函数外的对象指定属性相同

function addName(obj, name) {
  obj.name = name;
}

var bob = {};
console.log(bob.name); // undefined
addName(bob, 'Bob');
console.log(bob.name); // 'Bob'

您正在将数组项复制到它们自己。从
waypointsArray
数组复制到
旅程。waypointsArray项目
数组:

function setupAddress(journey) {
  var waypointsItem = $('.timeline-item.active-item > .timeline-status > .waypoints').text().substring(4);
  var waypointsArray = listToArray(waypointsItem, ', ');
  for (var i = 0; i < waypointsArray.length; i++) {
    journey.waypointsArrayItem[i] = waypointsArray[i];
  }
}

因此,在调用
设置地址(旅程)
函数后,您是否实际检查了
旅程.waypointsArrayItem
数组?通常它应该包含预期的项目,当然,除非jQuery选择器
$('.timeline-item.active-item>.timeline status>.waypoints').text().substring(4)未返回任何内容或已崩溃。在所有情况下,您可能会考虑在浏览器中查询控制台输出的潜在错误。谢谢。我尝试了以下操作,但不断收到以下错误消息
Uncaught TypeError:无法在
travely.waypointsArrayItem[I]=waypointsArray[I]+“,Windy City”设置未定义的属性“0”。知道是什么引起的吗?我的代码看起来不错。我一定是漏掉了什么face@methuselah:这里缺少一些代码,从数组声明的中间到函数声明。我模拟了数据和
listToArray
函数,它可以工作:
function setupAddress(journey) {
  var waypointsItem = $('.timeline-item.active-item > .timeline-status > .waypoints').text().substring(4);
  journey.waypointsArrayItem = listToArray(waypointsItem, ', ')
}