我有一个使用 lodash_.zipObject()函数生成的对象。所以我有 2 个数组,一个位置,一个数字。
var locs = {'Aberdeen': 304, 'Aberystwith': 109, 'Belfast': 219, 'Birmingham': 24, 'Brighton': 147, …}
Run Code Online (Sandbox Code Playgroud)
我需要根据输入值返回密钥。例如,function(304)将返回'Aberdeen'.
我试过,_.findkey(locs, 304);但这只是返回未定义。我尝试过的任何其他尝试总是返回 undefined 或 -1。不太确定从这里去哪里。
如何比较下面两个 JavaScript 对象是否相等且为真
var obj1 = {
'a': 'something',
'b': null
};
var obj2 = {
'a': 'something',
'b': ''
}
var isTrue = _.isEqual(obj1, obj2);
alert(isTrue);Run Code Online (Sandbox Code Playgroud)
<script src="https://cdn.jsdelivr.net/npm/lodash@4.17.15/lodash.min.js"></script>Run Code Online (Sandbox Code Playgroud)
当更多文本通过 style.display 显示在同一行中时,我试图为文本的移动设置动画(并淡入新文本),如何使用 CSS 动画实现这一点?
document.getElementsByClassName("secondary")[0].style.display = "none";
function show() {
document.getElementsByClassName("secondary")[0].style.display = "";
}Run Code Online (Sandbox Code Playgroud)
<div style="text-align: center;">
<a class="primary" id="about" onclick="show();">text 1 </a>
<a class="secondary" id="email">more text</a>
</div>Run Code Online (Sandbox Code Playgroud)
jsfiddle:https ://jsfiddle.net/Ycmelon/g1bdvmpx/
所以这就是我的数据的样子:
categories = [
{
name: ""
products: [
{
id: 1,
...
},
{
id: 2,
...
}
]
},
{
name: ""
products: [
{
id: 3,
...
},
{
id: 4,
...
}
]
},
...
]
Run Code Online (Sandbox Code Playgroud)
我想删除 ID 为 1 的产品,这是我的代码:
categories.map(category => category.products.filter(product => product.id !== 1))
Run Code Online (Sandbox Code Playgroud)
这是正确的代码吗?如果是这样,我如何创建一个新数组并使用新值设置它?
我有 2 个看起来像这样的数组:
amountArray = ["200","150","500","100"];
currencyArray = ["EUR","EUR","USD","USD"];
Run Code Online (Sandbox Code Playgroud)
如果第二个数组匹配,我想从第一个数组中求和。我想得到的结果:
totalAmount = "350 EUR | 600 USD";
Run Code Online (Sandbox Code Playgroud) 我正在做一些练习。问题是在字符串中找到第一个不重复的字符。我的想法是:将字符串转换为数组。将 array[0] 分配给一个新变量,并从 array 中删除这个 array[0]。检查这个新数组是否包含这个变量,如果没有,返回这个变量。否则,使用过滤器删除相同的值元素并获得一个新数组。重复这个过程。代码如下。
const NoneReChar = (str) => {
let tempArr = str.split('');
let start = tempArr[0];
while (true) {
tempArr.shift();
if (!tempArr.includes(start)) {
return start;
} else {
tempArr.filter(char => char !== start);
start = tempArr[0];
}
}
}
console.log(NoneReChar("aaaabbbeccc"))Run Code Online (Sandbox Code Playgroud)
我期望输出'e',但我一直得到'a'......我在这里犯的错误在哪里?
我正在创建一个带有插入阴影的侧边栏.我希望阴影出现在.block-title元素的顶部,但阴影会在它下面呈现.
你可以在这里看到问题:JSFiddle
这是我的css:
.block{
width:250px;
-webkit-box-shadow: inset 7px 0 10px -5px rgba(0,0,0,0.3);
-moz-box-shadow: inset 7px 0 10px -5px rgba(0,0,0,0.3);
box-shadow: inset 7px 0 10px -5px rgba(0,0,0,0.3);
border:1px solid gray;
}
.block .block-title{
background:#dedede;
padding:5px;
}
.block .block-title span{
color:#333;
font-size:14px;
text-align:center;
}
.block .block-content{
padding:10px;
}
Run Code Online (Sandbox Code Playgroud) 下面的代码适用于普通数组,但不适用于带有对象的数组,有人知道怎么做吗?
const array = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
function shuffle(array) {
for (let i = array.length - 1; i > 0; i--) {
let j = Math.floor(Math.random() * (i + 1));
let temp = array[i];
array[i] = array[j];
array[j] = temp;
}
return array;
}
const result = shuffle(array);
console.log(JSON.stringify(result));Run Code Online (Sandbox Code Playgroud)
我正在寻找这样做的最佳方法。我有两个数组(数组 1d 和数组 2d):
key = [1,2,3];
value = [['a','b','c'], ['d','e','f'], ['g','h','i']]Run Code Online (Sandbox Code Playgroud)
我想要的最终结果是一个地图数组:
[{1:a,2:b,3:c},{1:d,2:e,3:f},{1:g,2:h,3:i}]Run Code Online (Sandbox Code Playgroud)
我如何使用 lodash 以最有效/最干净的方式做到这一点?谢谢!
我在使用自定义反应挂钩方面遇到了一些困难。
我有 2 个定制挂钩。
第一个钩子用于获取 ID,第二个钩子用于使用先前获取的 ID 来获取配置文件。它依赖于该 ID,所以我需要等待这个承诺。
我有以下自定义挂钩:
export const UseMetamask = () => {
//Todo: Create check if metamask is in browser, otherwise throw error
const fetchWallet = async (): Promise<string | null> => {
try {
const accounts: string[] = await window.ethereum.request(
{
method: 'eth_requestAccounts'
},
);
return accounts[0];
} catch(e) {
console.error(e);
return null;
}
}
return fetchWallet();
}
Run Code Online (Sandbox Code Playgroud)
然后在我的第二个钩子中我有:
const wallet = UseMetamask();
Run Code Online (Sandbox Code Playgroud)
然后在反应查询调用中使用它,例如:
useQuery(
['user', wallet],
() => getUserByWallet(wallet),
Run Code Online (Sandbox Code Playgroud)
现在它抱怨钱包说它是一个Promise<string | null> …
javascript ×8
arrays ×4
lodash ×3
css ×2
html ×2
css3 ×1
filter ×1
object ×1
promise ×1
react-hooks ×1
react-query ×1
reactjs ×1
shuffle ×1
string ×1