if Array.find是否有简写形式?

时间:2018-10-25 00:54:43

标签: javascript

我想这样做:

 ProfileResult  profile( Runnable function)

我可以做一个速记表达式,既可以评估是否找到了一个项目,又可以在块中使用该项目?

类似:

const arr = [{id: 1}, {id: 2}, {id: 3}]; 

const item = arr.find(v => v.id===2); 

if (item) {
   console.log(item); 
}

3 个答案:

答案 0 :(得分:2)

是的,只需对您的代码进行简单的调整-将https://github.com/facebook/react/issues/更改为声明为{em> outside 的item,如果let可以将其重新分配给条件:

if

也就是说,我不推荐这样做-在条件内部分配变量是一种代码味道。我更喜欢您的原始版本,其中const arr = [{id: 1}, {id: 2}, {id: 3}]; // not actually necessary, but leaving it out will implicitly assign to global object: let item; if (item = arr.find(v => v.id ===2)) { console.log(item); }在外部完成。

如果需要的话,您也可以为类似的事情做自己的功能。函数定义并不小,但是现在您可以简洁地调用了:

.find

答案 1 :(得分:1)

有趣的是...虽然原著的时间并不长,但四处逛逛还是很有趣的。不是超短,而是一些。

for (let item = arr.find(v => v.id === 2);item;) {
    console.log('Found', item); 
    break;
}

答案 2 :(得分:1)

如果您只想在.innerHTML块内使用document.querySelector(element),则不需要itemifvar。但是,缺点是该变量将被全局绑定。

let