//转换成数组
snsArr=str.split(/[(\r\n)\r\n]+/);
//删除空项
snsArr.forEach((item,index)=>{
if(!item){
snsArr.splice(index,1);
}
})
1)、byte数组
let arr = new Uint8Array([0x48, 0x65, 0x6c, 0x6c, 0x6f, 0x20, 0x57, 0x6f]);
2)、将byte数组转换为字符串
let str = String.fromCharCode.apply(null, arr);
console.log(str);
3)、将字符串转换为byte数组
let str = "Hello World";
let arr = new Uint8Array(str.length);
4)、在Vue中使用byte数组。例如,我们可以使用axios发送包含byte数组的POST请求
let arr = new Uint8Array([0x48, 0x65, 0x6c, 0x6c, 0x6f, 0x20, 0x57, 0x6f]);
axios.post('/api', arr).then(response =>{
console.log(response.data);
});
<template>
<van-uploader
:file-list="fileListImage"
accept="media"
:capture="capture"
camera="back"
compressed
max-count="9"
max-duration="60"
media-type="['image', 'video']"
@after-read="afterReadImage"
@delete="deleteFileImage"
/>
</template>
export default {
data() {
return {
capture: ["camera"],
};
}
}

1)、路由传参
// 通过页面路由函数wx.navigateTo或wx.redirectTo的第二个参数传递数据
wx.navigateTo({
url: '/pages/details/details',
success: function(res) {
// 通过eventChannel向被打开页面传送数据
res.eventChannel.emit('acceptDataFromOpenerPage', {data: 'test'})
}
});
// 在被打开页面的onLoad方法中使用wx.onEvent监听事件,并获取数据
onLoad: function(options) {
var _this = this
// 监听acceptDataFromOpenerPage事件,获取上一页面通过eventChannel传送到当前页面的数据
const eventChannel = this.getOpenerEventChannel()
eventChannel.on('acceptDataFromOpenerPage', function(data) {
console.log(data) //输出{data: 'test'}
_this.setData({
test: data.data
})
})
}
2)、本地缓存传参
// 跳转前页面存储数据
wx.setStorageSync('key', 'value')
wx.navigateTo({
url: '/pages/index/index'
});
// 跳转后页面获取缓存数据
onLoad: function () {
var value = wx.getStorageSync('key')
console.log(value) //输出"value"
}
3)、全局变量传参
// 跳转前页面存储数据 app.js
App({
globalData:{
key: 'value'
}
})
//page.js
wx.navigateTo({
url: '/pages/index/index'
})
onLoad: function () {
var app = getApp()
console.log(app.globalData.key) //输出"value"
}
4)、URL传参
// 通过在URL中携带参数传递数据,如:"/pages/details/details?id=1001"
// 在接收页面的onLoad方法中可以获取传递的参数:
onLoad: function(options) {
console.log(options.id) //输出1001
}
<video src="{{videosrc}}" bindtap="previewVideo" data-current="{{videosrc}}" class="video"></video>
// 视频预览 也可图片预览
previewVideo(e){
wx.previewMedia({
sources: [{
url: e.currentTarget.dataset.current, //视频播放路径
type: 'video'//video视频 image图片
}]
})
},
Viewer 下载地址:
Viewer gitee
Viewer github
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>图片预览</title>
<link rel="stylesheet" href="./css/viewer.min.css">
<script src="./js/viewer.min.js"></script>
</head>
<body>
<ul id="imgView">
<li><img class="img" data-original="./img/photo.jpeg" src="./img/photo.jpeg" alt=""></li>
<li><img class="img" data-original="./img/photo.jpeg" src="./img/photo.jpeg" alt=""></li>
<li><img class="img" data-original="./img/photo.jpeg" src="./img/photo.jpeg" alt=""></li>
<li><img class="img" data-original="./img/photo.jpeg" src="./img/photo.jpeg" alt=""></li>
</ul>
<script>
var Viewer = window.Viewer; // 定义Viewer
var viewer = new Viewer(document.getElementById('imgView'), {
url: 'data-original'
});
</script>
</body>
</html>
1)、拿到所有节点
var zTree = $.fn.zTree.getZTreeObj(“treeDemo”);
var nodes = zTree.getNodes();
2)、只获取选中节点
var zTree = $.fn.zTree.getZTreeObj(“treeDemo”);
var nodes = zTree.getSelectedNodes();
3)、更新节点名称
for(var i = 0;i
//调用updateNode(node)接口进行更新
zTree.updateNode(nodes[i]);
}
1,给vue组件绑定事件时候,必须加上native ,不然不会生效(监听根元素的原生事件,使用 .native 修饰符)
2,等同于在自组件中:
子组件内部处理click事件然后向外发送click事件:$emit(“click”.fn)
uni.hideLoading({
noConflict: true
});
首先,作为一名java程序员,我以为换行只要在文本里面在需要添加换行的地方添加上\n,但是在我进行这样操作之后,结果前端显示没有换行。通过学习网络知识,才知道,layui弹出层中换行可以使用 < br />来进行换行
后端代码:
StringBuilder msg = new StringBuilder();
msg.append("清理完成, 共清理成功").append(successCount).append("条记录, ").append("清理失败").append(failureCount)
.append("条记录, 总耗时").append(clearFee).append(", 详情如下: ").append("
");
msg.append("清理成功路径:").append("
");
for (String successClearPath : successClearPaths) {
msg.append(successClearPath).append("
");
}
msg.append("清理失败路径: ").append("
");
for (String failureClearPath : failureClearPaths) {
msg.append(failureClearPath).append("
");
}
logger.info(msg.toString());
return Result.success(msg.toString());
layui前端接收:
layer.open({
title: "详情",
content: res.msg,
icon: 1
})
效果显示:

问题描述:
在工作中有时候会需要前端对表格进行数据筛选显示。
1、以下为ES6写法:
// data:原始数据,类型为数组;params:过滤条件,类型为对象;
const productFilter = (data, params) => data.filter(item => Object.keys(params).every(key => item[key] && item[key].includes(params[key])))
参数说明:
data:原始数据,类型为数组;params:过滤条件,类型为对象;
如果您需要ES5的写法,请联系:1960816818 (QQ、VX同号);
如有问题可以留言交流、讨论;
下面看一下执行效果:
首先模拟一段表格数据;
var data = [];
for (var i = 0; i < 100; i++) {
data.push({
id: 'id' + i,
name: 'name' + i + (100 - i),
car: 'car' + (1000 - i)
})
}
productFilter(data, {id: '1',name: '2',car: '2'});
//执行结果 :
//[
// {id: 'id18', name: 'name1882', car: 'car982'},
// {id: 'id71', name: 'name7129', car: 'car929'}
//]