答:
有四种方法可以在JavaScript中清空数组
var array1 = [1, 22, 24, 46];
array1 = [ ];
var array1 = [1, 22, 24, 46];
array1.length=0;
var array1 = [1, 22, 24, 46];
while(array1.length > 0) {
array1.pop();
}
var array1 = [1, 22, 24, 46];
array1.splice(0, array1.length)
答:
有多种方法可以从数组中删除重复项,但让我告诉您一种最流行的方法。
filter()
方法,需要三个参数。它们分别是数组self
,当前元素elem
和当前元素的索引index
。let language = ['JavaScript', 'Dart', 'Kotlin', 'Java', 'Swift', 'Dart']
function unique_array(arr) {
let unique_array = arr.filter(function (elem, index, self) {
return index == self.indexOf(elem);
});
return unique_array
}
console.log(unique_array(language));
// Logs [ 'JavaScript', 'Dart', 'Kotlin', 'Java', 'Swift' ]
答:
console.log(Array.isArray(5)); //logs false
console.log(Array.isArray("")); //logs false
console.log(Array.isArray()); //logs false
console.log(Array.isArray(null)); //logs false
console.log(Array.isArray({ length: 5 })); //logs false
console.log(Array.isArray([])); //logs true
function isArray(value){
return Object.prototype.toString.call(value) === "[object Array]"
}
答:
作为
Array.prototype.map
方法的MDN描述,该map()
方法创建一个新数组,其结果是在调用数组中的每个元素上调用提供的函数。
map()
方法的语法是let newArray = arr.map(callback(currentValue[, index[, array]]) {
// return element for newArray, after executing something
}[, thisArg]);
function map(arr, mapCallback) {
// Check if the parameters passed are right.
if (!Array.isArray(arr) || !arr.length || typeof mapCallback !== 'function') {
return [];
}
else {
let result = [];
// Avoid mutating the original array.
for (let i = 0, len = arr.length; i < len; i++) {
result.push(mapCallback(arr[i], i, arr));
// push the result of the mapCallback in the 'result' array
}
return result; // return the result array
}
}
答:
作为
Array.prototype.filter
方法的MDN描述,该filter()
方法将创建一个新数组,其中包含所有通过通过所提供函数实现的测试的元素。
let newArray = arr.filter(callback(currentValue[, index[, array]]) {
// return element for newArray, if true
}[, thisArg]);
function filter(arr, filterCallback) {
// Check if the parameters passed are right.
if (!Array.isArray(arr) || !arr.length || typeof filterCallback !== 'function') {
return [];
}
else {
let result = [];
// Avoid mutating the original array.
for (let i = 0, len = arr.length; i < len; i++) {
// check if the return value of the filterCallback is true or "truthy"
if (filterCallback(arr[i], i, arr)) {
// push the current item in the 'result' array if the condition is true
result.push(arr[i]);
}
}
return result; // return the result array
}
}
答:
累加器,当前值,当前索引,源数组
arr.reduce(callback( accumulator, currentValue, [, index[, array]] )[, initialValue])
function reduce(arr, reduceCallback, initialValue) {
// Check if the parameters passed are right.
if (!Array.isArray(arr) || !arr.length || typeof reduceCallback !== 'function'){
return [];
}
else {
// If no initialValue has been passed to the function we're gonna use the
let hasInitialValue = initialValue !== undefined;
let value = hasInitialValue ? initialValue : arr[0];
// first array item as the initialValue, Start looping at index 1 if there is no
// initialValue has been passed to the function else we start at 0 if there is an initialValue.
for (let i = hasInitialValue ? 0 : 1, len = arr.length; i < len; i++) {
// Then for every iteration we assign the result of the reduceCallback to the variable value.
value = reduceCallback(value, arr[i], i, arr);
}
return value;
}
}
答:
命名函数在定义后便立即声明名称。可以使用function关键字将其定义为:
function named() {
// write code here
}
答:
例子是
let show = function () {
console.log('Anonymous function');
};
show();
答:
答:
function one() {
return Array.prototype.slice.call(arguments);
}
automatically
在给出函数的地方执行某个函数,而不必再次调用它,则anonymous functions
可以使用它。感谢您阅读本篇博客文章,希望能对您有所帮助。我很快将更新系列的第4-10部分,应该在明天了,我会保持每天至少更新一篇,关注我,或者❤或📑把本篇文章收藏起来,我会把后续内容链接放在本篇文章末尾。