根据 Mozilla 开发者网站:
The flatMap() method first maps each element using a mapping function, then flattens the result into a new array. It is identical to a map followed by a flat of depth 1, but flatMap is often quite useful, as merging both into one method is slightly more efficient.
例子:
let arr = [1, 2, 4, 2, 3, 3, 4, 5, 5, 5, 8, 8, 9, 10];
const flatMap = arr.flatMap(x => x);
console.log(flatMap);
Run Code Online (Sandbox Code Playgroud)
TypeError: arr.flatMap() is not …
我收到了这个问题进行练习,措词使我感到困惑,因为我看到了可能想要的2个结果。
无论哪种方式,我都希望看到两种解决方案。
例如,如果我有一个数组:
let arr = [1, 2, 4, 2, 3, 3, 4, 5, 5, 5, 8, 8, 9, 10];
Run Code Online (Sandbox Code Playgroud)
我认为这是想要最终结果的一种:
let finalResult = [1, 2, 3, 4, 5, 8, 9, 10];
Run Code Online (Sandbox Code Playgroud)
要么:
let finalResult = [1, 9, 10];
Run Code Online (Sandbox Code Playgroud)
两者之间的区别在于,一个只是删除所有重复的数字,剩下其余部分,第二个只是想要任何非重复的数字。
无论哪种方式,我都想编写两个函数,每个函数执行一个。
这是别人给的,这是我的第二个解决方案。
let elems = {},
arr2 = arr.filter(function (e) {
if (elems[e] === undefined) {
elems[e] = true;
return true;
}
return false;
});
console.log(arr2);
Run Code Online (Sandbox Code Playgroud)
我不确定第一个功能(删除所有重复项)。
我在我的应用程序中@types/express安装了依赖项
import express = require('express');
当我运行我的服务器时,它指向express和说this is an unexpected identifier。我相信这是正确的 TS 语法,并且常规的 JS 方式const express = ..具有相同的错误。
我需要普通快递吗?或者我不需要我已经安装的那个,它应该专门用于 TS 吗?
我想将其转换为useEffect钩子:
代码
componentDidMount () {
this.messagesRef.on('child_added', snapshot => {
const message = snapshot.val();
message.key = snapshot.key;
this.setState({messages: this.state.messages.concat(message
)});
});
Run Code Online (Sandbox Code Playgroud)
更新代码
const MessageList = () => {
const [messages, setMessage] = useState([]);
const [usernames, setUsernames] = useState('');
const [contents, setContents] = useState('');
const [roomId, setRoomId] = useState('');
const messagesRef = MessageList.props.firebase.database().ref('messages');
useEffect(() => {
messagesRef.on('child added', snapshot => {
const message = snapshot.val();
message.key = snapshot.key;
const [messages, setMessages] = useState({messages: messages.concat(message)});
});
})
}
Run Code Online (Sandbox Code Playgroud)
现在它给了我一个useState cannot …
指示
编写一个函数,将 2 种颜色作为参数并返回平均颜色。
代码
const avgColor = (str1, str2) => {
return (str1 + str2) / 2
}
Run Code Online (Sandbox Code Playgroud)
题
十六进制是这样的0000ff吧?
当我需要对每个组件取算术平均值并列出 3 种颜色时,我不确定这意味着什么。你如何取字符串的平均值?
我正在关注本教程:
https://blog.expo.io/building-a-react-native-app-using-expo-and-typescript-part-1-a81b6970bb82
yarn global add create-react-native-app
create-react-native-app my-app-name
cd my-app-name
yarn start
我和我的手机(Android)在同一个网络上。没有VPN。我在我的应用程序的根文件夹中。它说Loading dependency graph, done.所以我知道它正在运行。
防火墙也为此关闭,这不是超时错误。
当我扫描二维码时:
Something went wrong. Could not load exp://10.0.0.21:19000.
我的问题可能是什么?
编辑
新错误: Uncaught Error: java.net.ConnectException: Failed to connect to /10.0.0.21.19000
免责声明
大家好,我知道很少有Javascript问题/答案可以用来弄清楚如何找到两个单词是否是字谜。
我不只是在寻找一个可以弄清楚两个单词/字符串是否是字谜的函数。我正在寻找一种比下面提供的功能更快的功能。目前,我相信以下函数的时间复杂度为O(n log n)。
我想找出一个函数,该函数的时间复杂度为O(n)或运行时间比提供的函数快。
码
const isAnagram = (str1, str2) => {
str1 = str1.toLowerCase();
str2 = str2.toLowerCase();
if (str1.length !== str2.length) {
return false
}
let sortStr1 = str1.split('').sort().join('').trim();
let sortStr2 = str2.split('').sort().join('').trim();
return sortStr1 === sortStr2
};
console.log(isAnagram('dog', 'goD')); //true
Run Code Online (Sandbox Code Playgroud) 我浏览了一下,没有看到答案:
您会使用别名方法做什么?
class Vampire
attr_reader :name, :thirsty
alias_method :thirsty?, :thirsty
end
Run Code Online (Sandbox Code Playgroud)
我使用问号的唯一原因是能够在我定义的任何方法中使用问号吗?我相信您不能对实例变量使用问号。
今天有人问了一个关于找出从 I 到数组末尾的数组中选择某些元素的问题,这让我想知道如何使用该filter方法来做到这一点。
有人提供的解决方案之一是使用slice,我知道您可以从一个索引到另一个索引进行选择,但是您将如何实现该filter方法来做同样的事情?
例子
let arr = ['bug', 'cat', 'dog', 'flea', 'bat', 'hat', 'rat'];
let newArr = arr.filter(element => element >= element.indexOf(3));
console.log(newArr);Run Code Online (Sandbox Code Playgroud)
这就是我想出的,它不起作用,但想法是选择索引为 3 或更大的所有字符串并将它们返回到另一个数组中。
[a,b] = [b, a+b] 在这里不起作用,ab始终为0和1。
如果使用临时变量交换值,则可以。
function fibonacciSequence() {
let [a, b, arr] = [0, 1, []]
while (a <= 255) {
arr.concat(a)
[a, b] = [b, a + b]
console.log(a, b) // always 0 1
}
}
console.log(fibonacciSequence())Run Code Online (Sandbox Code Playgroud)
javascript ×7
arrays ×3
alias-method ×1
anagram ×1
average ×1
duplicates ×1
ecmascript-6 ×1
expo ×1
filter ×1
flatmap ×1
import ×1
indexof ×1
node.js ×1
react-native ×1
reactjs ×1
require ×1
ruby ×1
typescript ×1
use-effect ×1
yarnpkg ×1