给定2个数组[1,2]和[7,8],合并形成[[1,7],[2,8]]的最有效方法是什么.我知道我们可以这样做:
a1 = [1,2], a2 = [7,8], a3=[];
for (var i=0; i<a1.length; i++) {
a3.push([a1[i], a2[i]]);
}
Run Code Online (Sandbox Code Playgroud)
我正在处理一个大型阵列.所以我想看看是否有更好的方法.
因此,我一直在思考可以使用JavaScript数组进行的一些小练习。我遇到了以“压缩”方式组合两个数组的想法,(arrayA[0], arrayB[0], arrayA[1], arrayB[1]...)依此类推。可能更长的阵列中剩下的任何东西都将固定在末端。
我已经搜索了stackoverflow-我要问的原因是我目前正在参加编程入门课程,因此我们并不真正了解使用JavaScript可以完成的很多“工作”。如果可能的话,希望看到使用“简单”方法的解决方案!
目前,我已经有了另一种流行的方式,但是我似乎还没掌握将数组其余部分固定到最后的最后一部分。
function alternatingMerge(array1, array2)
//this function will merge two different arrays in an alternating fashion
//i.e = array1[0], array2[0], array1[1], array2[1], array1[2], array2[2], ... , etc
{
var mergedArray;
var i; // while loop counter
var j; //
var k; //
var arrayLengths;
arrayLengths = array1.length + array2.length;
i = 0; //
j = 0; // ARRAY1 COUNTER
k = 0; // ARRAY2 COUNTER
mergedArray = new Array(arrayLengths);
//window.alert(mergedArray);
while (i < arrayLengths) …Run Code Online (Sandbox Code Playgroud) 我想添加两个具有相同长度的JavaScript数组的值来获得第三个数组,以便第三个数组的第一个值是两个第一个数组的第一个值的总和,第三个数组的第二个值array是两个第一个数组的第二个值的总和等.例如:
var array1 = [1,2,3];
var array2 = [4,1,0];
var array3 = array1 + array2;
Run Code Online (Sandbox Code Playgroud)
我想结果array3是[1+4, 2+1, 3+0]= [5,3,3].
这是不一样的问题,这.我想添加数字而不是制作子数组.
我知道你可以做,for(i = 0; i < array1.length; i++){array3[i] = array1[i] + array2[i]}但我想知道是否有内置代码可以做到这一点.
我目前有两个阵列
array1 = [5, 10, 20]
array2 = [10, 20, 30]
Run Code Online (Sandbox Code Playgroud)
无论是array3还是类似的东西:
array4 = [{"a":5, "b":10}, {"a":10, "b":20}, {"a":20, "b":30}]
Run Code Online (Sandbox Code Playgroud)
我知道这可能是一个简单的问题,但我甚至不确定会调用哪个array3所以很难谷歌这个.
我有两个数组,其中第一个包含位置名称,第二个包含位置纬度和经度值.每个数组中的每个项目对应于它在另一个数组中的对应项,并且两个数组具有相同数量的项目,如下所示:
var arr1 = [['Location #1'],['Location #2']];
var arr2 = [['36.1978319','-83.02365759999999'],['38.679842','-121.7457402']];
Run Code Online (Sandbox Code Playgroud)
我需要的是两组项目的组合数组,但不是这样连接的:
var arr3 = [['Location #1','36.1978319','-83.02365759999999'],
['Location #2','38.679842','-121.7457402']];
Run Code Online (Sandbox Code Playgroud)
我能想到这样做的唯一方法就是使用组合for循环,但我无法正确识别语法并且不确定这是否可能......这样的事情:
for ((var a = 0; a < arr1.length; a++) && (var b = 0; b < arr2.length; b++)) {
arr3.push(arr1[a] + ',' + arr2[b]);
}
Run Code Online (Sandbox Code Playgroud)
有没有办法用纯JavaScript来解决这个问题?
例如:
var array1 = ["one", "two", "three"];
var array2 = ["1", "2", "3"];
Run Code Online (Sandbox Code Playgroud)
如何将这些数组转换为var array = [["one", "1"], ["two", "2"], ["three", "3"]]?
我知道我上传了一个类似的问题,但我的意图在这里不同,所以这不是一个重复的问题。
我想根据另一个数字数组对数组进行排序。更具体地说,如果 1 是数字数组的第 n 个元素,我想重新排列目标数组,以便原始数组中的第 n 个元素是第一个元素,依此类推。例如;
//Case 1
const input = ["a", "b", "c", "d", "e"];
const order = [2, 4, 5, 1, 3];
intended_result: ["d", "a", "e", "b", "c"];
//Case 2
const input = ["a", "b", "c", "d", "e"];
const order = [3, 1, 4, 5, 2];
intended_result: ["b", "e", "a", "c", "d"];
Run Code Online (Sandbox Code Playgroud)
执行上述操作的 Javascript 代码是什么?有什么建议吗?
非常感谢!
我有两个数组.如何将它们连接成一个多维数组?
第一个数组是:
var arrayA = ['Jhon, kend, 12, 62626262662',
'Lisa, Ann, 43, 672536452',
'Sophie, Lynn, 23, 636366363'];
Run Code Online (Sandbox Code Playgroud)
我的另一个数组有值:
var arrayB = ['Jhon', 'Lisa', 'Sophie'];
Run Code Online (Sandbox Code Playgroud)
我怎么能得到这种格式的数组?
var jarray = [['Jhon', ['Jhon, kend, 12, 62626262662']],
['Lisa', ['Lisa, Ann, 43, 672536452']],
['Sohphie', ['Sophie, Lynn, 23, 636366363']]]
Run Code Online (Sandbox Code Playgroud) 我有这样的对象:
{ "aa": "11", "bb" : "22", "cc" : "33" }
{ "aa": "text1", "bb" : "text2", "cc" : "text3" }
Run Code Online (Sandbox Code Playgroud)
我需要将这些合并成为这个数组
[ ["text1", "11"], ["text2", "22"], ["text3", "33"] ]
Run Code Online (Sandbox Code Playgroud)
是否有捷径可寻?
我正在玩JavaScript的数组原型图,我不明白为什么我得到以下值:
console.log(
[1,2,2,5,6].map(function(a,b){
return a+b;
})
); /*This returns [ 1, 3, 4, 8, 10 ]*/
Run Code Online (Sandbox Code Playgroud)
上述代码不应该返回[1,3,4,7,11]吗?
这是另一个代码片段,它显示数组中的元素是按顺序添加的,并且至少我相信是正确的.
console.log(
[1,2,3,4,5,6].map(function(a,b){
return a+b;
})
); /*[ 1, 3, 5, 7, 9, 11 ]*/
Run Code Online (Sandbox Code Playgroud)
这只是一个奇怪的问题,更多的是为什么第一段代码似乎.
我想用ExcelJS创建包含2个数据数组的Excel文件。
我可以创建Excel文件:
var Excel = require('exceljs');
var workbook = new Excel.Workbook();
var sheet = workbook.addWorksheet('My Sheet', {properties:{tabColor:{argb:'FFC0000'}}});
Run Code Online (Sandbox Code Playgroud)
我可以添加列标题:
sheet.columns = [{key:"date", header:"Date"}, {key: "quantity", header: "Quantity"}]
Run Code Online (Sandbox Code Playgroud)
这些列有2个数组:
array_date = [2018-01-04, 2018-01-06, 2018-01-08, 2018-01-09]
array_quantity = [25, 32, 54, 48]
Run Code Online (Sandbox Code Playgroud)
我想将这2个数组合并为一个数组,如下所示:
var merged = [{date:"2018-01-04", quantity:25}
, {date:"2018-01-06", quantity:32}
, {date:"2018-01-08", quantity:42}
, {date:"2018-01-09", quantity:48}];
Run Code Online (Sandbox Code Playgroud)
如果可以合并,则可以为每个数据添加为行:
for(i in merged){
sheet.addRow(merged[i]);
}
Run Code Online (Sandbox Code Playgroud)
然后,我可以创建Excel文件:
workbook.xlsx.writeFile("some.xlsx").then(function() {
console.log("xls file is written.");
});
Run Code Online (Sandbox Code Playgroud)
如果订购了两个阵列,如何将它们组合在一起?另外,我想知道这是在NodeJS中创建excel文件的最佳方法吗?
我有 2 个列表/数组:
\n[例子]:
\nlet labels =\xc2\xa0["John", "Sophie", "Hannah", "Emilia"]\n\nlet data = [10, 40, 24, 25]\nRun Code Online (Sandbox Code Playgroud)\n我想按数据顺序对两个数组进行排序。(每个名称与另一个数组中同一索引处的值相对应)。我会使用像这样的对象 {name: value} 但为了我的需要,它们必须是分开的(至少是结果)。我找到了一个解决方案,但我发现它不是很优雅。
\n[期望的输出示例]:
\nlet data = [40, 25, 24, 10]\n\nlet labels = ["Sophie", "Emilia", "Hannah", "John"]\nRun Code Online (Sandbox Code Playgroud)\n基本上,另一个数组必须使用与数据数组相同的模式进行排序(数字升序)
\n