我无法将此箭头函数转换为普通函数。我已经在 chrome 的控制台面板中对此进行了测试。此代码取自 freecodeCamp.org Es6 课程中的内容
//This is what I have tried. The final output result is showing undefined
const realNumberArray = [4, 5.6, -9.8, 3.14, 42, 6, 8.34, -2];
const squareList = function(arr) {
"use strict";
const squaredIntegers = function(num) {
(function() {
arr.filter(Number.isInteger(num) && num > 0);
});
return squaredIntegers;
}
}
const squaredIntegers = squareList(realNumberArray);
console.log(squaredIntegers);
//Here is the Arrow function I was trying to convert
const realNumberArray = [4, 5.6, -9.8, 3.14, 42, 6, 8.34, -2]; …Run Code Online (Sandbox Code Playgroud) 我怎样才能正确的使用if else条件arrow function。
//代码
renderHeadline = label => (
<Headline layout= {.... }>
.......
</Headline>
);
Run Code Online (Sandbox Code Playgroud)
我想label != null在渲染之前检查一下是否。
任何建议
我有如下代码
function renameKey ( obj, oldKey, newKey ) {
obj[newKey] = obj[oldKey];
delete obj[oldKey];
}
const arr = JSON.parse(json);
arr.forEach( obj => renameKey( obj, '_id', 'id' ) );
const updatedJson = JSON.stringify( arr );
Run Code Online (Sandbox Code Playgroud)
但似乎箭头函数 (=>) 在我的环境中不起作用并出现以下错误。
箭头函数语法 (=>)' 仅在 ES6 中可用(使用 'esversion: 6')
这是 Apigee 环境,我无权更改任何配置。当我删除箭头函数并像下面这样作为普通函数调用时,它失败了
const arr = JSON.parse(json);
arr.forEach(renameKey( obj, '_id', 'id' ) );
const updatedJson = JSON.stringify( arr );
Run Code Online (Sandbox Code Playgroud)
因此,为了更改 JSON 中的每个键,我如何使用 forEach 循环,或者如果有替代方法将会很有帮助。有人可以建议一下吗。
我正在尝试添加.each语法,但收到错误“;丢失”或“需要分号”也在cypress上工作,因为没有;
测试代码:
cy.get('.products').find('.product').each($el, index, $list) => {
const VegName = $el.find('h4.product-name').text()
...
Run Code Online (Sandbox Code Playgroud)
赛普拉斯版本:^12.11.0
出于某种原因,该方法getTwo()内PollClass不会返回2,但undefined.如果我将return语句放在.forEach()循环外部,则会返回一个值.
class Poll {
constructor(name) {
this.name = name;
this.nums = [1, 2, 3];
}
getTwo() {
this.nums.forEach(num => {
if (num === 2) return num;
})
}
}
const newPoll = new Poll('random name');
console.log(newPoll.getTwo()); // returns undefined, not 2
Run Code Online (Sandbox Code Playgroud)
这是关闭,ES 6或其他问题的问题吗?
我有一个小的加载脚本来设置一些看起来像这样的类:
function frameIt() {
console.log("called frameit")
$( 'img' ).on('load', () => {
console.log("running listener")
debugger;
$( this ).addClass( "tasty" );
});
console.log("set listener")
}
Run Code Online (Sandbox Code Playgroud)
我的问题是$(this)始终设置为window即使this在上下文中是imgChrome的调试器显示的加载标记.为什么会发生这种情况的任何想法?这是一个Chrome调试器截图:

我的React项目中的箭头函数有问题.
这个类看起来像这样:
f1() {
// sth...
}
f2 = (a) => () => { /* sth */ }
f3 = (b) => () => {
this.f1();
this.f2();
}
Run Code Online (Sandbox Code Playgroud)
为什么没有调用函数f2?F1还可以,但f2似乎有上下文问题?怎么解决?我需要在其工作的另一个地方调用相同的函数(f2)(onClick事件).我猜这个'这个'是自动绑定的问题,但我不知道如何解决它.请帮忙.
我当时在React.js应用程序上工作,最初使用的是箭头功能,但出于好奇,我决定尝试正常功能,但正常功能无效。我认为他们都应该输出相同的内容,这是怎么回事?
handleChange = event => this.setState({init: event.target.value})
handleChange(event){
this.setState({init: event.target.value})
}
Run Code Online (Sandbox Code Playgroud) 让我们假设我们有一个profile具有属性name和getName方法的对象(箭头函数).
profile = {
name: 'abcd',
getName: () => {
console.log(this.name);
}
}
Run Code Online (Sandbox Code Playgroud)
我想getName通过保持箭头功能完整,而不是将其更改为常规功能来调用方法.
如何abcd通过调用获得输出getName().
你可以在里面添加表达式getName.
请问call()或bind()帮助?如果是这样,怎么样?
请勿将箭头功能更改为常规功能
- 已编辑 -
我只想问一下如何在对象内部使用箭头函数,以便它反映结果,因为我们将进入常规函数.
这只是一个采访问题.
我已经在react组件内部声明了一个箭头函数。在这个里面我记录了一个值,但显示错误。我的反应是新手,请帮帮我。
我在哪里声明了功能
class DeliveryPage extends Component{
onChange : (event) => { console.log('change', event.target.value); }
}
Run Code Online (Sandbox Code Playgroud)
我在这里调用了该函数
<ComboBox
data={source}
onChange={this.onChange}
onFilterChange={this.onFilterChange}
filterable={true}
/>
Run Code Online (Sandbox Code Playgroud)
然后我将代码更改为
onChange = (event) => { console.log('change', event.target.value); }
Run Code Online (Sandbox Code Playgroud)
arrow-functions ×10
javascript ×8
reactjs ×4
ecmascript-6 ×2
arrays ×1
cypress ×1
function ×1
jquery ×1
json ×1
rendering ×1
return ×1
this ×1
web ×1