Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/379.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.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_Arrays_Google Apps Script_Google Sheets - Fatal编程技术网

Javascript 将两个数组合并在一起

Javascript 将两个数组合并在一起,javascript,arrays,google-apps-script,google-sheets,Javascript,Arrays,Google Apps Script,Google Sheets,好的,我有两个来自json的数组。 getBalances返回 [{Currency=USD, Balance=3.25}, {Currency=CNY, Balance=4.56}, {Currency=CAD, Balance=4.56}, {etc}, {etc}] [{Currency=USDJPY, Equivilent=0.12}, {Currency=USDCNT, Equivilent=0.75}, {Currency=USDJPN, Equivil

好的,我有两个来自json的数组。 getBalances返回

 [{Currency=USD, Balance=3.25},
  {Currency=CNY, Balance=4.56},
  {Currency=CAD, Balance=4.56},
  {etc},
  {etc}]
 [{Currency=USDJPY, Equivilent=0.12},
  {Currency=USDCNT, Equivilent=0.75},
  {Currency=USDJPN, Equivilent=0.75},
  {etc},
  {etc}]
和getValues返回

 [{Currency=USD, Balance=3.25},
  {Currency=CNY, Balance=4.56},
  {Currency=CAD, Balance=4.56},
  {etc},
  {etc}]
 [{Currency=USDJPY, Equivilent=0.12},
  {Currency=USDCNT, Equivilent=0.75},
  {Currency=USDJPN, Equivilent=0.75},
  {etc},
  {etc}]
最多有100多种货币和3对响应货币,每种货币至少有1对响应货币

我正在寻找一个示例,说明如何使用这些数组,并将它们组合起来

{Currency=USD, Balance=3, USDCNY=0.12, USDJPN=0.75, USDCAD=0.75},
如果有人能给我一个起点,或者一个带解释和参考的示例代码,那就太酷了。我不知道该怎么做,我的谷歌浏览器让我失望


函数getValues(){
//var balancesSheet=SpreadsheetApp.getActiveSpreadsheet().getSheetByName(“余额”);
//var交换=余额表.getRange(1,1150,1);
var=[];
var endpoint=“someapident”
var results=publicRequest(endpoint);//调用函数创建url并返回json
var dataAll=JSON.parse(results.getContentText());
var数据集=dataAll;
dataSet.forEach(函数(结果、索引){
final.push({'Currency':result.symbol,'equilent':result.price})
});
排序(函数(a,b){
如果(a.货币b.货币)返回1;
返回0;
});
//Logger.log(决赛);
返回json2array(决赛);
};
函数loadBalances(){
var balancesSheet=SpreadsheetApp.getActiveSpreadsheet().getSheetByName(“余额”);
balancesSheet.getRange(1,1150,2).clearContent();
var余额=getbalances();
var arr=json2array_2;(余额);
var removeZerobalances=arr.filter(函数(项){返回项[1]!=0});
var destinationRange=balancesSheet.getRange(1,1,removeZerobalances.length,removeZerobalances[0].length);
destinationRange.setValues(移除零余额);
};
函数getbalances(){
var=[];
var endpoint=“someapident”
var results=privateRequest(端点,“timestamp=“+nonce);//调用函数创建url和json
var dataAll=JSON.parse(results.getContentText());
var数据集=dataAll;
dataSet.balances.forEach(函数(结果、索引){
final.push({'Currency':result.asset,'Balance':result.free})
});
//Logger.log(决赛);
复赛决赛;
};
函数json2array(数据){
var结果=[];
var键=[];
var值=[];
用于(数据中的var i){
对于(var输入数据[i]){
如果(i==0)键。按(键);
推送(数据[i][Key]);
}
如果(i==0){
结果:按键;
键=[];
}
结果:推(值);
值=[];
}
返回结果;
};

在谷歌应用程序脚本中,当使用
Logger.log()
查看对象时,
key
value
被视为
key=value
。这可以用作对象。那么这个示例脚本怎么样?通过将来自
getBalances()
的数据的
Currency
与来自
getValues()
的数据的顶部字符进行比较,将检索
getValues()
Currency
equivalent

示例脚本: 样本结果: 输入: 输出:
如果我误解了你的问题,请告诉我。我想修改。

这看起来不像JSON。你从哪里得到
{Dad=Joe,Kids=3}
呢?试着把你的主要目标(按规则合并数组)分解成更小、更易于管理的目标(检查字符串变量是否包含子字符串
x
,创建一个以值命名的变量等等)Cody,它们是从私有api提取的json创建的数组的例子。谢谢GalAbra,我会试试看。你是用谷歌应用程序脚本获取这些数据的吗?如果你使用它,这些数据可以作为一个对象使用。我正在使用谷歌应用程序脚本。谢谢。这正是我想要做的。但是我得到了TypeError:无法调用undefined的方法“slice”。我从getValues()中删除了使用json2array的方法,只返回了var final,它删除了TypeError。
var obj1 = [{Currency: "USD", Balance: 3.25},{Currency: "CNY", Balance: 4.56},{Currency: "CAD", Balance: 4.56}];
var obj2 = [{Currency: "USDJPY", Equivilent: 0.12},{Currency: "USDCNT", Equivilent: 0.75},{Currency: "USDJPN", Equivilent: 0.75}];
[
    {
        "Currency": "USD",
        "Balance": 3.25,
        "USDJPY": 0.12,
        "USDCNT": 0.75,
        "USDJPN": 0.75
    },
    {
        "Currency": "CNY",
        "Balance": 4.56
    },
    {
        "Currency": "CAD",
        "Balance": 4.56
    }
]