小编Ori*_*ori的帖子

在JS中查找对象上特定值的键

我有一个使用 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 arrays object lodash

4
推荐指数
2
解决办法
1万
查看次数

比较具有 null 和空字符串值的 JS 对象

如何比较下面两个 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)

javascript lodash

4
推荐指数
2
解决办法
752
查看次数

添加新文本元素后,是否可以通过 CSS 为文本移动设置动画

当更多文本通过 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/

预期结果:https : //s3.gifyu.com/images/3dr3h5.gif

html css

3
推荐指数
1
解决办法
54
查看次数

以不可变的方式删除嵌套数组中的对象

所以这就是我的数据的样子:

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)

这是正确的代码吗?如果是这样,我如何创建一个新数组并使用新值设置它?

javascript

3
推荐指数
1
解决办法
89
查看次数

如果第二个数组匹配,则对第一个数组中的数字求和

我有 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)

javascript arrays

3
推荐指数
1
解决办法
75
查看次数

找出字符串中第一个不重复的字符,这里有什么错误?

我正在做一些练习。问题是在字符串中找到第一个不重复的字符。我的想法是:将字符串转换为数组。将 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'......我在这里犯的错误在哪里?

javascript arrays string filter

3
推荐指数
1
解决办法
48
查看次数

框阴影溢出父

我正在创建一个带有插入阴影的侧边栏.我希望阴影出现在.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)

html css css3

2
推荐指数
1
解决办法
740
查看次数

如何在javascript中混洗一组对象?

下面的代码适用于普通数组,但不适用于带有对象的数组,有人知道怎么做吗?

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)

javascript arrays shuffle

2
推荐指数
1
解决办法
6420
查看次数

如何使用 lodash 将两个数组(数组 1d 和数组 2d)合并到一个对象中

我正在寻找这样做的最佳方法。我有两个数组(数组 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 以最有效/最干净的方式做到这一点?谢谢!

javascript lodash

2
推荐指数
1
解决办法
76
查看次数

与异步自定义反应挂钩作斗争。如何等待一个钩子的结果以在另一个钩子中使用?

我在使用自定义反应挂钩方面遇到了一些困难。

我有 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 promise reactjs react-hooks react-query

2
推荐指数
1
解决办法
5130
查看次数