Я создал функцию, которая принимает переменную и возвращает последнее значение в массиве переменных. Как мне передать несколько массивов переменных для выполнения функции? Он работает для var arr, но не для pzz?
var arr = ['abc', 'def', 'ghi'];
var pzz = ['jkl', 'lmn', 'opq'];
function valueIn(v) {
vLength = v.length;
console.info(v[vLength-1]);
}
valueIn(arr);
Спасибо, отлично работает. Просто из интереса, есть ли способ перебрать сценарий, чтобы идентифицировать все объявленные переменные в глобальной области?
В идеале у вас не должно быть никаких переменных в глобальной области видимости, кроме встроенных. Если вы хотите перебрать кучу переменных, просто заранее назначьте их массиву. const myArrs = [arr, pzz];
попробуйте этот valueIn([...arr,...pzz])
Один из способов сделать это - использовать объект js Arguments для доступа к каждому отправленному аргументу. Справка.
var arr = ['abc', 'def', 'ghi'];
var pzz = ['jkl', 'lmn', 'opq'];
function valueIn() {
for (i = 0; i < arguments.length; i++) {
v = arguments[i];
console.info(v[v.length - 1]);
}
}
valueIn(arr, pzz);
Второй способ сделать это - использовать оператор распространения. Справка.
var arr = ['abc', 'def', 'ghi'];
var pzz = ['jkl', 'lmn', 'opq'];
function valueIn(...args) {
for (i = 0; i < args.length; i++) {
v = args[i];
console.info(v[v.length - 1]);
}
}
valueIn(arr, pzz);
В следующем коде предполагается, что вы собираетесь писать в консоль. @CertainPerformance правильно, чтобы рекомендовать запускать для каждого цикла. Однако я бы рекомендовал перенести значения в другой массив, чтобы вы могли запускать его по мере необходимости.
var valueInArray = [];
var arr = ['abc', 'def', 'ghi'];
var pzz = ['jkl', 'lmn', 'opq'];
valueInArray.push(arr, pzz);
function valueIn(v) {
vLength = v.length;
console.info(v[vLength - 1]);
}
valueInArray.forEach(function(el) {
valueIn(el);
});
А в ES6
var valueInArray = [];
var arr = ['abc', 'def', 'ghi'];
var pzz = ['jkl', 'lmn', 'opq'];
valueInArray.push(arr, pzz);
function valueIn(v) {
vLength = v.length;
console.info(v[vLength - 1]);
}
valueInArray.forEach(el => (valueIn(el)));
[arr, pzz].forEach(valueIn)