鍍金池/ 問(wèn)答/HTML/ y.push is not a function ?為什么呢?

y.push is not a function ?為什么呢?

clipboard.png

回答
編輯回答
話寡

clipboard.png經(jīng)過(guò)這一步之后y已經(jīng)變成一個(gè)字符串了 沒(méi)有push方法

2017年11月20日 13:12
編輯回答
下墜

y += y.push()
等號(hào)右邊就是數(shù)組,那你[]+[]第二次就成字符串了
第三次 字符串+[] 不就直接報(bào)錯(cuò)了么

2017年12月29日 07:41
編輯回答
兮顏

y += y.push(dict[x]); console.log(typeof y)
這里操作后 y 成 string 類型了。

2017年3月18日 07:21
編輯回答
你的瞳

不用y+; y.push(x)就可以

2017年12月9日 03:04
編輯回答
萢萢糖

不知道你期望得到的是什么結(jié)果.
如果是字符串的話, y += Math.random() * 16就可以.
如果需要得到數(shù)組, y.push(Math.random() * 16)就可以.
上面報(bào)錯(cuò)的原因是 += 操作以后y變成了字符串, 失去了數(shù)組的push方法.

2017年6月8日 01:17
編輯回答
陌上花

數(shù)組的push方法返回的是數(shù)組的長(zhǎng)度不是一個(gè)數(shù)組。

y += y.push(dict[x]); //相當(dāng)于
y += dict[x].length + 1;  //這句話操作完之后y已經(jīng)不是一個(gè)數(shù)組了,所以再次循環(huán)找不到push方法
2018年5月5日 03:59
編輯回答
夢(mèng)若殤

看你獲取隨機(jī)顏色的代碼 幫你寫(xiě)了一個(gè), 你看行不行
("000000" + (~~(Math.random()*16777215)).toString(16)).slice(-6);

Math.random()*16777215)//隨機(jī)0-ffffff 16777215是ffffff的10進(jìn)制
雙波浪線 ~~ 操作符也被稱為“雙按位非”操作符,可用于取整
前面加0是為了補(bǔ)全不夠6位的情況

2018年8月3日 17:28
編輯回答
默念

獲取隨機(jī)顏色。

function getColor() {
    return Math.random().toString(16).substring(2, 8);
}

另外,你可以console.log(y) 看看y是什么,或者使用 typeof y 來(lái)判斷類型。

2017年6月26日 05:32
編輯回答
淚染裳
y+=y.push

數(shù)組做數(shù)值操作之后已經(jīng)不返回?cái)?shù)組了,肯定沒(méi)有push方法了

2018年9月16日 04:36