javascript - 无法在函数中返回值/变量
问题描述
当我 console.log 它将所有数组显示为字符串,因为在我的数组中,它们是多维的;使用console.log函数查看代码下方,不返回但未定义
function changeStrings(arr, replacement) {
var newArr = []
for ( var i = 0 ; i < arr.length ; i++) {
newArr.push(arr[i].split(" "))
}
for ( var j = 0 ; j < replacement.length ; j++ ) {
newArr[0][3] = replacement[j-2]
newArr[1][3] = replacement[j-1]
newArr[2][4] = replacement[j]
}
for ( var k = 0 ; k < newArr.length ; k++ ) {
console.log(newArr[k].join(" "))
}
};
let initial = ["my city in London", "my name is Mike", "my phone number is 00909090"];
let replacements = ['Paris', 'John', '1234'];
console.log(changeStrings(initial, replacements))
如果我使用 return ,它只打印一行;
检查这个
function changeStrings(arr, replacement) {
var newArr = []
for ( var i = 0 ; i < arr.length ; i++) {
newArr.push(arr[i].split(" "))
}
for ( var j = 0 ; j < replacement.length ; j++ ) {
newArr[0][3] = replacement[j-2]
newArr[1][3] = replacement[j-1]
newArr[2][4] = replacement[j]
}
for ( var k = 0 ; k < newArr.length ; k++ ) {
var dispplay = newArr[k].join(" ")
return dispplay
}
};
// now let's test out our functions!
let initial = ["my city in London", "my name is Mike", "my phone number is 00909090"];
let replacements = ['Paris', 'John', '1234'];
console.log(changeStrings(initial, replacements))
newArr 变量是数组多维它看起来像这样;
[ [ 'my', 'city', 'in', 'Paris' ],
[ 'my', 'name', 'is', 'John' ],
[ 'my', 'phone', 'number', 'is', '1234' ] ]
我正在尝试在这种情况下使用 for 循环,因为我想训练我的逻辑;),谁能帮我找出问题所在?或解决这个问题?谢谢你
解决方案
该函数在循环的第一次迭代之后返回。这会阻止其余的迭代执行。您必须从函数返回一个数组。您可以将push()
所有项目放入循环内的数组中,然后返回数组:
function changeStrings(arr, replacement) {
var newArr = []
for ( var i = 0 ; i < arr.length ; i++) {
newArr.push(arr[i].split(" "))
}
for ( var j = 0 ; j < replacement.length ; j++ ) {
newArr[0][3] = replacement[j-2]
newArr[1][3] = replacement[j-1]
newArr[2][4] = replacement[j]
}
var display = [];
for ( var k = 0 ; k < newArr.length ; k++ ) {
display.push(newArr[k].join(" "));
}
return display
};
// now let's test out our functions!
let initial = ["my city in London", "my name is Mike", "my phone number is 00909090"];
let replacements = ['Paris', 'John', '1234'];
console.log(changeStrings(initial, replacements))
推荐阅读
- ios - Firebase Messenger Swift 的 UITableViewCell
- php - 处理程序未捕获 autohorization 和令牌不匹配异常。拉拉维尔
- javascript - 打开带有预先选中复选框的 HTML 页面
- php - PHP 连接到 Firebird 数据库
- ios - 在 iOS 上编译 Delphi Tokyo 10.2.3 时出错
- reactjs - 我想要单击删除按钮时的图像 ID
- android - 文本输入 (React Native - Android) - 支持 onKeyPreIme
- java - 更新谷歌应用引擎的 gradle 版本
- android - 获取推送通知的新令牌火力库 (FCM)
- java - 需要更新java中的toString方法