提供給你一種思路: 撤銷功能可以用棧這種數(shù)據(jù)結(jié)構(gòu)實(shí)現(xiàn)。具體這個數(shù)據(jù)結(jié)構(gòu)里面存儲什么數(shù)據(jù),你根據(jù)你的程序去考慮。
恰恰相反,nginx是最容易支持OPTIONS請求的服務(wù)器,只需要在配置里添加以下幾行就可以了:
location / {
if ($request_method = OPTIONS ) {
add_header Content-Length 0;
add_header Content-Type text/plain;
return 200;
}
}https://developer.mozilla.org...
就是ES6新增加的一個對象方法的簡寫,你說的不行肯定是報錯了吧,應(yīng)該是環(huán)境不支持ES6
===========================================
箭頭函數(shù)能運(yùn)行大概率不是ES6環(huán)境問題了,看一下瀏覽器版本的兼容情況,或者方法里有沒有用到this?
AppMain?組件內(nèi)部 需要有router-view
PS: id=app重復(fù)了,不規(guī)范
已解決,把static目錄和build目錄放在同級
antd-mobile@2中處理了高清屏幕。
所以,升級antd-mobile時,也要將之前處理高清沖突的地方處理了。
項(xiàng)目中不要將body的font-size寫死,其他大小最好使用rem。
IE不支持,拿東西給它蓋住吧。
SEO優(yōu)化說白了就是使得自己的網(wǎng)站對于搜索引擎的爬蟲更加友好,目前單頁面應(yīng)用的大部分做法是使用前端框架,導(dǎo)致主頁面沒有相關(guān)的描述信息,詳細(xì)信息大部分都是動態(tài)生成的,對于爬蟲來說去準(zhǔn)確模擬相關(guān)的行為獲取符合數(shù)據(jù)是很困難的(對于如此大規(guī)模的數(shù)據(jù)來說)。
看樣子是 Vue,在每一步操作的時候,實(shí)際都是修改了 newList 的內(nèi)容,然后我猜你只需要把 newList 丟給后臺就可以了。不過你似乎要先把 newList 中的 deviceId 和 deviceName 合并到 list 中的每一項(xiàng)里去……,可以通過 map 和 reduce 生成一個新的數(shù)組出來。
給你個示例
const data = [
{
deviceId: 0,
deviceName: "0000",
list: [
{
areaId: 1
},
{
areaId: 2
}
]
},
{
deviceId: 1,
deviceName: "0001",
list: [
{
areaId: 3
}
]
}
];
const all = data.reduce((all, group) => {
const list = group.list
.map(m => ({
...m,
deviceId: group.deviceId,
deviceName: group.deviceName
}));
all.push(...list);
return all;
}, []);
console.log(all);
結(jié)果
[ { areaId: 1, deviceId: 0, deviceName: '0000' },
{ areaId: 2, deviceId: 0, deviceName: '0000' },
{ areaId: 3, deviceId: 1, deviceName: '0001' } ]已采用前端定時任務(wù)編譯項(xiàng)目解決問題。
使用嵌套路由
//router.js
routes: [
{
path: '/index',
name: 'index',
component: Index,
children:[
{
path:'page1'
name: 'page1',
component: Page1,
},
{
path:'page2'
name: 'page2',
component: Page2,
},
]
},
{
path: '/login',
name: 'login',
component: Login,
}
]
//app.vue
<template>
<div id="app">
<router-view />
</div>
</template>
//index.vue
<template>
<div id="index">
<navigator />
<sidebar />
<router-view />
</div>
</template>你的問題是提供那段定時器代碼嗎?
全局匹配影響的
lastIndex:下一個匹配的索引值。(這個屬性只有在使用g參數(shù)時可用)
在全局匹配下,匹配成功后正則表達(dá)式的lastIndex會增加,若開始為0,如果上一次匹配成功了。lastIndex就會變?yōu)?,而進(jìn)行一下個字母比較就是從位置1開始比較的,你第二個為配,只有一個,lastIndex為0的話可以匹配,但是為1,找配后面的字符串找不到,所以匹配失敗,失敗后lastIndex變?yōu)?,下次從0開始搜索,中匹配成功....
var arr2 = ["匹","配","中","文"];
var pattern1 = /[\u4e00-\u9fa5]+/g;
for (var i = 0; i < arr2.length; i++) {
console.log(pattern1.lastIndex) //0 1 0 1
if (pattern1.test(arr2[i])) {
console.log(arr2[i]); // 匹,中
}
}
由上可知,若想顯示,lastIndex是逐漸增加的,類似于下面的才能顯示出來
var arr2 = ["匹","配配","中中中","文文文文"];
所以應(yīng)該去掉/g,或者循環(huán)時將lastIndex重置為0
var pattern1 = /[\u4e00-\u9fa5]+/g;
for (var i = 0; i < arr2.length; i++) {
pattern1.lastIndex=0;
if (pattern1.test(arr2[i])) {
console.log(arr2[i]);
}
}因?yàn)?code>alert會阻塞進(jìn)程
第一個彈出的必定是1,彈出的時候如果你不點(diǎn)擊確定,那么就回一直阻塞著,而這時所有的后續(xù)代碼和回調(diào)函數(shù)都不會在執(zhí)行。
同步代碼執(zhí)行完成后,后生成5個定時器,在彈出1等待你點(diǎn)擊確定時,后面的所有的定時器都已經(jīng)準(zhǔn)備好了,所以是亂序的
而console函數(shù)不會阻塞,所以按照順序執(zhí)行的
謝邀!
<?php
$sum = 10000;
$diff = 100;
$count = 5;
$return = array();
$min = 0;
$i = 1;
while($i < $count) {
// 隨機(jī)數(shù)不符合要求時的結(jié)果初始化
if(isset($return[$i]) || isset($return[$i+1])) {
unset($return[$i]);
unset($return[$i+1]);
}
// 剩余數(shù)
$remain_sum = $sum - array_sum($return);
// 剩余需要隨機(jī)的個數(shù)
$remain_count = intval($count - count($return));
// 高斯求最小差值和,分兩部分:S = n(n+1)(2n+4)/12 + $diff * ((n-1)(n-2)/2)
$min_diff = $remain_count * ($remain_count - 1) * (2 * ($remain_count - 1) + 4) / 12 + ($remain_count * ($remain_count - 1) / 2) * $diff;
// 隨機(jī)范圍的最小值
$min = $i == 1 ? 1 : $return[$i-1] + $diff + 1;
// 在范圍內(nèi)獲取隨機(jī)數(shù)
mt_srand((double)microtime() * 1000000);
// 隨機(jī)范圍的最大值
$rand_max = intval(($remain_sum - $min_diff) / $remain_count);
// 產(chǎn)生隨機(jī)數(shù)
$min = mt_rand($min, $rand_max);
// 放入返回的數(shù)組
$return[$i] = $min;
if($i == $count - 1) {
// 最后一個隨機(jī)數(shù)直接取總數(shù)減去前面的隨機(jī)數(shù)
$return[$i+1] = $remain_sum - $min;
}
if(check_diff($return) === false) {
$i--;
continue;
}
$i++;
}
var_dump($return);die;
// 判斷數(shù)組內(nèi)是否有差值相等
function check_diff($arr) {
if(empty($arr)) {
return false;
}
$arr = array_map('intval', $arr);
sort($arr);
$count = count($arr);
$diff_arr = array();
for($i = $count - 1; $i >= 0; $i --) {
for ($j = 0; $j < $count; $j ++) {
if($arr[$i] <= $arr[$j]) {
continue 2;
}
$diff_arr[] = $arr[$i] - $arr[$j];
}
}
if(count($diff_arr) === count(array_unique($diff_arr))) {
return true;
}
return false;
}
https://github.com/pissang/st... 之前有整理過各個國家的 GeoJSON 文件
應(yīng)該可以這樣寫吧:
(this.$refs.upload as HTMLElement).post去https://open.weixin.qq.com/cg...
下載一個最新的包就可以了。。。
var a = {};
var b = {key: 'b'};
var c = {key: 'c'};
var d = [3,5,6];
a[b] = 123;
上面一行代碼:b 是一個對象,把一個對象作為一個對象中的屬性時:屬性名就為[object Object],把123給這個屬性賦值
a[c] = 345;
上面這樣代碼:同上面的解釋,此時[object Object]屬性存在,所以賦值345會把123覆蓋。
a[d] = 333;
上面這樣代碼:d 是一個數(shù)組,把一個數(shù)組作為一個對象中的屬性時:屬性名就為arrayName.join(','),例如:[1,{a:2},3,4].join(',')//"1,[object Object],3,4",把333給這個屬性賦值
所以有下面的輸出
console.log(a[b]); // 345
console.log(a[c]); // 345
console.log(a[d]); // 333
北大青鳥APTECH成立于1999年。依托北京大學(xué)優(yōu)質(zhì)雄厚的教育資源和背景,秉承“教育改變生活”的發(fā)展理念,致力于培養(yǎng)中國IT技能型緊缺人才,是大數(shù)據(jù)專業(yè)的國家
達(dá)內(nèi)教育集團(tuán)成立于2002年,是一家由留學(xué)海歸創(chuàng)辦的高端職業(yè)教育培訓(xùn)機(jī)構(gòu),是中國一站式人才培養(yǎng)平臺、一站式人才輸送平臺。2014年4月3日在美國成功上市,融資1
北大課工場是北京大學(xué)校辦產(chǎn)業(yè)為響應(yīng)國家深化產(chǎn)教融合/校企合作的政策,積極推進(jìn)“中國制造2025”,實(shí)現(xiàn)中華民族偉大復(fù)興的升級產(chǎn)業(yè)鏈。利用北京大學(xué)優(yōu)質(zhì)教育資源及背
博為峰,中國職業(yè)人才培訓(xùn)領(lǐng)域的先行者
曾工作于聯(lián)想擔(dān)任系統(tǒng)開發(fā)工程師,曾在博彥科技股份有限公司擔(dān)任項(xiàng)目經(jīng)理從事移動互聯(lián)網(wǎng)管理及研發(fā)工作,曾創(chuàng)辦藍(lán)懿科技有限責(zé)任公司從事總經(jīng)理職務(wù)負(fù)責(zé)iOS教學(xué)及管理工作。
浪潮集團(tuán)項(xiàng)目經(jīng)理。精通Java與.NET 技術(shù), 熟練的跨平臺面向?qū)ο箝_發(fā)經(jīng)驗(yàn),技術(shù)功底深厚。 授課風(fēng)格 授課風(fēng)格清新自然、條理清晰、主次分明、重點(diǎn)難點(diǎn)突出、引人入勝。
精通HTML5和CSS3;Javascript及主流js庫,具有快速界面開發(fā)的能力,對瀏覽器兼容性、前端性能優(yōu)化等有深入理解。精通網(wǎng)頁制作和網(wǎng)頁游戲開發(fā)。
具有10 年的Java 企業(yè)應(yīng)用開發(fā)經(jīng)驗(yàn)。曾經(jīng)歷任德國Software AG 技術(shù)顧問,美國Dachieve 系統(tǒng)架構(gòu)師,美國AngelEngineers Inc. 系統(tǒng)架構(gòu)師。