javascript - 在Javascript中映射二维数组
问题描述
使用二维数组的输入,我需要得到一个元素为大写的数组作为输出。
这是我的尝试,但它不起作用。
var cityColumn = [['avila'], ['burgos'], ['madrid'], ['sevilla']];
var cityRow = [['avila', 'avila', 'burgos', 'madrid', 'sevilla']];
var cityCell = [['sevilla']];
console.log(cityRow);
function upperCaseArray(myArray) {
var upperized = myArray.map(function(city){
console.log(typeof city);
return city.toUpperCase();
});
return upperized;
}
console.log(upperCaseArray(cityColumn));
console.log(upperCaseArray(cityRow));
console.log(upperCaseArray(cityCell));
// output desired:
// [['AVILA], ['BURGOS'], ['MADRID'], ['SEVILLA']]
// [['AVILA, 'AVILA', 'BURGOS', 'MADRID', SEVILLA']]
// [['SEVILLA']]
注意:这些输入是我从 Google Sheet range 获得的SpreadsheetApp.getActiveSpreadsheet().getSelection().getActiveRange().getValues()
。我开始编写 Google Apps 脚本。
解决方案
因为您的字符串嵌套在数组本身的数组中,所以您需要两个 .map
:
var cityColumn = [['avila'], ['burgos'], ['madrid'], ['sevilla']];
var cityRow = [['avila', 'avila', 'burgos', 'madrid', 'sevilla']];
var cityCell = [['sevilla']];
function upperCaseArray(arr) {
return arr.map(function(subarr) {
return subarr.map(function(str) {
return str.toUpperCase();
});
});
}
console.log(upperCaseArray(cityColumn));
console.log(upperCaseArray(cityRow));
console.log(upperCaseArray(cityCell));
推荐阅读
- javascript - React:如何在 ReactJS 中删除重复的路由名称
- javascript - 有没有办法从 Plotly.js 中的 plot.data 等 Dygraphs 中获取数据?
- sql - 如何对必须属于值('ve02','ve14;,'ve22')的组特殊列进行SQL查询
- angular - 如何从 Ionic Dynamic Select Options 中获取 ID 值和 NAME 值
- laravel - Laravel API 资源将模型转换为 POST 请求数据
- azure - 无法将“System.String”类型的值转换为“System.Collections.Hashtable”类型
- java - 迭代列表查找布尔属性,返回默认 false
- android - 我丢失了用于签署我的 apk 的密钥库。可以在play store重新上传吗?
- java - 如何将来自 localhost:8080 的其余请求重定向到不同的端口?
- angular - 为什么在不提交表单的情况下编辑表单的 [(NgModel)] 输入时 BehaviorSubject 会发生变化?