javascript - 无法在字符串 'and_chr 89' 上创建属性 'and_ff'"
问题描述
Lambda 函数出现问题,收到错误,但如果我在快速应用程序中运行相同的代码,我不会收到相同的错误。我不是
Data returned by caniuse.getLatestStableBrowsers();
[
'and_chr 89', 'and_ff 86',
'and_qq 10.4', 'and_uc 12.12',
'android 89', 'baidu 7.12',
'bb 10', 'chrome 89',
'edge 89', 'firefox 87',
'ie 11', 'ie_mob 11',
'ios_saf 14.0-14.5', 'kaios 2.5',
'op_mini all', 'op_mob 62',
'opera 73', 'safari 14',
'samsung 13.0'
]
我遇到问题的Lamda代码
'use strict';
const caniuse = require('caniuse-api');
const request = require('request');
const browsers = caniuse.getLatestStableBrowsers();
const versions = browsers.reduce((memo, bro) => {
const parts = bro.split(' ');
memo[parts[0]] = parts[1];
return memo;
});
console.log(versions);
运行良好的快速代码
'use strict'
const express = require('express');
const caniuse = require('caniuse-api');
const app = express();
app.use(express.json());
app.get('/', (req, res) => {
const browsers = caniuse.getLatestStableBrowsers();
const versions = browsers.reduce((memo, bro) => {
const parts = bro.split(' ');
memo[parts[0]] = parts[1];
return memo;
}, {});
res.send({ versions });
});
解决方案
数组 reducer 方法缺少初始值,而在 express 代码中定义了初始值。
'use strict';
const caniuse = require('caniuse-api');
const request = require('request');
const browsers = caniuse.getLatestStableBrowsers();
const versions = browsers.reduce((memo, bro) => {
const [browser, version] = bro.split(' ');
memo[browser] = version;
return memo;
}, {});
console.log(versions);
推荐阅读
- reactjs - 使用 unform 库实现单选按钮
- google-apps-script - 当列中的单元格值更改时如何插入行
- ios - 在 Swift 中使用 AVAudioRecorder 在后台恢复录制的问题
- javascript - 根据 Javascript 中的匹配项查找键值
- c++ - 如何确定某些数字的最大值和最小值以及平均值?
- c++ - 在创建堆栈数据结构时使用 stoi 会导致错误
- unity3d - Unity 输入系统的默认键盘布局是否与 Mac 笔记本电脑上的美式英语键盘相对应?
- c++ - 堆栈成员初始化器列表中定义的分配对象
- import - 导入桌面文档 RStudio Cloud
- dart - 在 Dart 中,如何让重载的运算符返回子类类型?