小编Cer*_*nce的帖子

有条件地链接数组方法

如何使数组方法可选?

Leets说我有这个代码,但我想filtermap可选

const ages = data
  .filter(isDog)
  .map(dogYears)
  .reduce(sum);
Run Code Online (Sandbox Code Playgroud)

所以我会做类似的事情

let result

if(useFilter) {
  result = data.filter(isDog)
}

result
  .map(dogYears)
  .reduce(sum);
Run Code Online (Sandbox Code Playgroud)

我知道应该采用更紧凑,更实用的方式

javascript

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

什么时候可以迭代一个空数组?

使用Array(n)在javascript中定义数组定义了一个空数组,如果我错了,请纠正我.现在,如果我写下面的代码:

Array(2).map((val) => console.log(val))
Run Code Online (Sandbox Code Playgroud)

没有任何反应,但是当我将数组的元素分散到另一个数组中时,就像这样:

[...Array(2)].map((val) => console.log(val))
Run Code Online (Sandbox Code Playgroud)

..我得到未定义的控制台日志.谁能帮助我了解这里发生了什么?

javascript arrays

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

在Vue中调用方法时的括号

在Vue中,为什么要同时分配侦听器()和不分配侦听器()

new Vue({
  el: "#app",
  data: {
    userName: "Hello World!"
  },
  methods: {
    changeName: function(e){
      this.userName = "Name "+Math.random();
    }
  }
})
Run Code Online (Sandbox Code Playgroud)
<script src="https://cdn.jsdelivr.net/npm/vue@2.5.16/dist/vue.js"></script>

<div id="app">
  <p> {{ userName }} </p>
  
  <!-- typing in both the input fields trigger changeName  -->
  
  <input @input="changeName()">
  <input @input="changeName">
  
</div>
Run Code Online (Sandbox Code Playgroud)

在上面的代码段中,两个输入字段上的输入事件都changeName很好地触发,尽管其中一个带有括号,()而一个没有括号。

javascript vue.js vuejs2

3
推荐指数
2
解决办法
701
查看次数

Javascript - 等待数组完成填充

我正在尝试获取某些数组元素的值。它适用于元素 [0]、[1]、[2]、[3],但不适用于 [4]。

function getBase64() {
  const urls = ['https://i.imgur.com/egNg7JU.jpg',
    'https://i.imgur.com/RLZ7WH1.jpg', 'https://i.imgur.com/qfabBbA.jpg',
    'https://i.imgur.com/Zuh1KaX.jpg', 'https://i.imgur.com/yD7X6Q1.jpg'
  ];

  let base64urls = [];

  const start = async () => {
    await asyncForEach(urls, async (num) => {
      await waitFor(50)
      toDataURL(num, function(dataURL) {
        base64urls.push(dataURL);
      });
    })
    console.log(base64urls);
    console.log(base64urls[4]);
  }
  start()

}

async function asyncForEach(array, callback) {
  for (let index = 0; index < array.length; index++) {
    await callback(array[index], index, array)
  }
}

const waitFor = (ms) => new Promise(r => setTimeout(r, ms))
Run Code Online (Sandbox Code Playgroud)

toDataURL简单地返回图像的 base64 值。每当我尝试 …

javascript arrays asynchronous

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

var let 可以,但 let let 不行吗?

//Version A:
var let = true;
console.log(let);//true
Run Code Online (Sandbox Code Playgroud)
//Version B:
let let = 0; //syntax Error: let is disallowed as a lexically bound name
console.log(let);
Run Code Online (Sandbox Code Playgroud)

是否有任何特殊原因允许我们允许let使用var但不创建名称的变量let?通过这个实验,这是否也意味着变量名let可以存在于全局级别,但不能存在于某些范围级别?但全局不是考虑范围吗?

javascript

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

在这段代码中,为什么两段都是蓝色的?

.red p {
  color: red;
}

.blue p {
  color: blue;
}
Run Code Online (Sandbox Code Playgroud)
<div class="blue">
  <p> first </p>
  <div class="red">
    <p> second </p>
  </div>
</div>
Run Code Online (Sandbox Code Playgroud)

我假设第一个是蓝色,第二个是红色,但事实并非如此.为什么这两段都是蓝色的?

html css

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

如何在输入字段中将数字限制为总共3个?

我试图将两个输入字段的输入值的数量限制为三个。例如input 1 = 1, input 2 = 2. so, 1+ 2 = 3 or 2 + 1= 3,如果一个输入中的值达到3,则用户将不能添加更多。还有其他类似的问题,但它们通常仅适用于1个输入字段。我想要对合并字段的限制。

我尝试了以下代码,但它似乎并没有按照我想要的方式进行响应。它的总值并不只有3。它在浏览器中完成,但是当我查看控制台时,它仍然继续。

$('.qty_pack').change(function() {
  var i = 0;
  if (i >= 3) {
    $(this).parent().find('.qty_pack').val(0);
    console.log('You have reached max items');
  }
  $('.check_sales_pack').each(function() {
    i += parseFloat($(this).parent().find('.qty_pack').val())
  });
  console.log(i);
});
Run Code Online (Sandbox Code Playgroud)
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div>
  <input type="hidden" class="check_sales_pack" name="check_sales_pack">
  <input type="number" class="qty_pack" name="qty_pack" value="0" min="0" max="3">
  <input type="number" class="qty_pack" name="qty_pack" value="0" min="0" max="3">
</div>
Run Code Online (Sandbox Code Playgroud)

jquery

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

从javascript数组中提取具有唯一字符的字符串

我只想提取那些具有唯一字符的字符串,我有一个字符串数组:

var arr = ["abb", "abc", "abcdb", "aea", "bbb", "ego"];
Output: ["abc", "ego"]
Run Code Online (Sandbox Code Playgroud)

我尝试使用 Array.forEach() 方法来实现它:

var arr = ["abb", "abc", "abcdb", "aea", "bbb", "ego"];
Output: ["abc", "ego"]
Run Code Online (Sandbox Code Playgroud)

想知道有没有其他方法可以实现这个任务?

任何建议。

javascript arrays foreach

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

JavaScript 按 X 号沿数组中的所有项目移动

我想创建一个接受 2 个参数的函数,第一个参数是一个数组,第二个参数是移动所有数组项的索引位置数。

因此,例如,如果我通过 exampleFunc([1,2,3,4,5], 2) 它应该将所有项目向右移动 2 个位置,因此返回 [4,5,1,2,3]。我已经完成了以下操作,但是有没有更雄辩/有效的方法来做到这一点?另外,如果我想反转方向并将其压缩为 1 个函数而不是如下所示的两个函数,除了在每个函数的不同部分放置条件之外,还有什么建议吗?尝试使用 .splice() 方法,但并没有真正到任何地方。任何帮助将不胜感激!

const moveArrayPositionRight = (array, movePositions) => {
  let newArray = new Array(array.length);

  for (i = 0; i < array.length; i++) {
    let newIndex = i - movePositions;

    if (newIndex < 0) {
      newIndex += array.length;
    }

    newArray[i] = array[newIndex];
  }

  return newArray;
};

console.log(moveArrayPositionRight([2, 4, 6, 8, 10], 2)); // output: [8, 10, 2, 4, 6]
Run Code Online (Sandbox Code Playgroud)

const moveArrayPositionLeft = (array, movePositions) => {
  let newArray = …
Run Code Online (Sandbox Code Playgroud)

javascript arrays

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

未捕获的 DOMException:无法在“文档”上执行“querySelector”:“”不是有效的选择器

我有一个包含两项的清单。第二个项目的 ID 由 生成并getTime()与 串联new$,形成一个随机 ID,如下图所示。

在此输入图像描述

我需要定位该元素来执行某些功能,但是当我尝试使用 执行此操作时querySelector,它会产生一个错误,指出它不是有效的选择器,即使我使用它将String()生成的随机数转换为字符串也是如此。

在此输入图像描述

我在这里缺少什么?

javascript reactjs

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

标签 统计

javascript ×8

arrays ×4

asynchronous ×1

css ×1

foreach ×1

html ×1

jquery ×1

reactjs ×1

vue.js ×1

vuejs2 ×1