我想将一个对象作为参数传递给函数,并将事物分配给该对象的属性,然后可以在函数外部访问它们。但我不清楚它是如何完成的。
起初我认为可以使用回调来完成,但我清楚地知道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];
}
}
答案 0 :(得分:1)
为函数中的对象赋值属性与在函数外指定属性相同。
function addName(obj, name) {
obj.name = name;
}
var bob = {};
console.log(bob.name); // undefined
addName(bob, 'Bob');
console.log(bob.name); // 'Bob'
答案 1 :(得分:1)
您正在将数组项复制到自己。从waypointsArray
数组复制到journey.waypointsArrayItem
数组:
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];
}
}
根据您的需要,您也可以只替换整个阵列:
function setupAddress(journey) {
var waypointsItem = $('.timeline-item.active-item > .timeline-status > .waypoints').text().substring(4);
journey.waypointsArrayItem = listToArray(waypointsItem, ', ')
}