2017-02-03 13 views
-1
var currentAge = 26; 
var maxAge = 100; 
var amountPerDay = 30.50; 

var calculation = (((maxAge - currentAge) * 365) * amountPerDay); 
console.log(calculation); 
var stringCalc = calculation.toString().split('').splice(2, 0, "9"); 
console.log(stringCalc); 

console.log (stringCalc) показывает пустой массив. Связано ли это с методом toString?Array splice удаляет все элементы из массива

Примечание: Я пытаюсь добавить строку «9» в середину массива, а не удалять что-либо из массива.

+0

@NewToJS Ваше имя точнее; '.split()' возвращает массив – Feathercrown

+0

Вы знакомы с оператором '+' в JavaScript, не так ли? Ваш код выглядит так, как будто для конкурса write-code-that-is-impossible-to-read;) – str

+1

Вы правы, за исключением двух консольных операторов, две строки сценария прокляты почти невозможно прочитать. Спасибо, что ответили на мой вопрос @str –

ответ

0

недостающее звено в вашем понимании является возвращаемым значением сращивания, которые являются удаленными элементами.

var currentAge = 26; 
var maxAge = 100; 
var amountPerDay = 30.50; 

var calculation = (((maxAge - currentAge) * 365) * amountPerDay); 
console.log(calculation); 
var stringCalc = calculation.toString().split(''); 
console.log(stringCalc); 
// ["8", "2", "3", "8", "0", "5"] 
console.log(stringCalc.splice(2, 0, "foo")); 
// [] because no items were deleted, return value = array of deleted items 
console.log(stringCalc) 
// ["8", "2", "foo", 3", "8", "0", "5"] 
0

var currentAge = 26; 
 
var maxAge = 100; 
 
var amountPerDay = 30.50; 
 

 
var calculation = (((maxAge - currentAge) * 365) * amountPerDay); 
 
console.log(calculation); 
 
var stringCalc = calculation.toString().split(''); 
 
console.log(stringCalc); 
 
stringCalc.splice(2, 0, "9"); 
 
console.log(stringCalc);

splice() возвращает детали вырванные (в этом случае ни одна), а не после того, как массив сросток имеет место.

0

сплайсинг не возвращает массив просто добавляет его в существующем массив:

var currentAge = 26; 
var maxAge = 100; 
var amountPerDay = 30.50; 

var calculation = (((maxAge - currentAge) * 365) * amountPerDay); 
var numberArray = calculation.toString().split('') 

numberArray.splice(2, 0, "9"); 
console.log(numberArray);