如何使数组方法可选?
Leets说我有这个代码,但我想filter或map可选
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)
我知道应该采用更紧凑,更实用的方式
使用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)
..我得到未定义的控制台日志.谁能帮助我了解这里发生了什么?
在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很好地触发,尽管其中一个带有括号,()而一个没有括号。
我正在尝试获取某些数组元素的值。它适用于元素 [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 值。每当我尝试 …
//Version A:
var let = true;
console.log(let);//trueRun 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可以存在于全局级别,但不能存在于某些范围级别?但全局不是考虑范围吗?
.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)
我假设第一个是蓝色,第二个是红色,但事实并非如此.为什么这两段都是蓝色的?
我试图将两个输入字段的输入值的数量限制为三个。例如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)
我只想提取那些具有唯一字符的字符串,我有一个字符串数组:
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)
想知道有没有其他方法可以实现这个任务?
任何建议。
我想创建一个接受 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)我有一个包含两项的清单。第二个项目的 ID 由 生成并getTime()与 串联new$,形成一个随机 ID,如下图所示。
我需要定位该元素来执行某些功能,但是当我尝试使用 执行此操作时querySelector,它会产生一个错误,指出它不是有效的选择器,即使我使用它将String()生成的随机数转换为字符串也是如此。
我在这里缺少什么?
javascript ×8
arrays ×4
asynchronous ×1
css ×1
foreach ×1
html ×1
jquery ×1
reactjs ×1
vue.js ×1
vuejs2 ×1