数组slice()方法和splice()方法

【DeepSeek R1构建本地RAG知识库】数据结构化清洗-工作流自动清洗 在构建本地RAG知识库时,数据结构化清洗是关键但繁琐的步骤。传统方法效率低且易出错,而低代码/无代码平台如Dify提供了更高效的解决方案。Dify通过可视化工作流设计,集成大模型智能处理,支持多格式输入输出,无需编码即可完成复杂的数据清洗任务。文章详细介绍了数据结构化的核心困境、目标、价值及类型,并比较了TXT与Markdown在RAG系统中的适用性。最后,通过Dify平台实战演示了如何在20分钟内完成规则制度文档的结构化清洗,输出标准化数据,展示了自动化工作流在数据处理中的高效性和便捷性。 阅读详情

数组slice()方法和splice()方法

/**
*slice()方法接收两个参数,一个是起始位置,一个是结束位置
* 可以只传一个起始位置,就会返回从起始位置到结尾的所有项
* 他会返回起始位置和结束位置之间的项,包含起始位置,但是不包含结束位置
*/
var arr = [1,2,3,4,5,6,7,8,9,0];
console.log(arr.slice(1))//[2, 3, 4, 5, 6, 7, 8, 9, 0]
console.log(arr.slice(1,4))//[2, 3, 4]
console.log(arr)// [1, 2, 3, 4, 5, 6, 7, 8, 9, 0]
/**
*slice()方法并没有改变原来的数组,返回一个新的数组 
* slice(),两个参数还可以用负数哟
* 用负数的话就是       数组的长度 + 负数     来确定位置从哪里开始,从哪里结束
*/
console.log(arr.slice(-4,-2))//[7, 8] .....这个就是从  10-4 开始   10-2结束
console.log(arr.slice(-2,-4))//[] ..... 这个就是从   10-2 开始    10-4  结束
/**
* splice()方法应该是最强大的数组方法了
* 主要用途是向数组的中部插入项,参数有三个,一个是起始位置,第二个是删除,插入的项数,第三个是要插入的项
*/
var arr1 = [1,2,3,4,5,6];//删除任意数量的项
console.log(arr1.splice(0,1))//[1]    返回了要删除的项
console.log(arr1)//[2, 3, 4, 5, 6]  他改变了原来的数组

var arr2 = [1,2,3,4,5,6];//插入任意的数量项
console.log(arr2.splice(6,0,7,8,9))//[]
console.log(arr2)//[1, 2, 3, 4, 5, 6, 7, 8, 9]

var arr3 = [1,2,3,4,5,6];//向指定位置插入任意数量的项,并删掉任意数量的项
console.log(arr3.splice(1,2,7,8))//[2, 3]
console.log(arr3)//[1, 7, 8, 4, 5, 6]

Chrome更新出现错误代码3: 0X80070422 -- system level的解决方案 本文主要介绍了Chrome更新出现错误代码3: 0X80070422 – system level的解决方案,希望能对使用Chrome的同学们有所帮助。 文章目录 1. 问题描述 2. 解决方案 阅读详情

相关推荐

2023东华大学机试OJ进阶版1-81题

先排序。每次找两个最小的数,把其中一个置为两数之和,并累加这个和值,另一个数置为-1,然后再排序,重复操作,直到只剩下一个数。105。

m0_49263811的博客 2796

数组中的slice()方法和splice()

如果是2个参数, 列arr.slice(1,3)从索引1截取到3。如果是1个参数,列arr.slice(1)从索引截取到末尾。参数:通过索引在那进行操作,要删除的项目,添加的项目。作用:可以对数组进行 添加(截取),删除;1.如果删除数组中的一个元素时。参数: start-end。作用:对数组进行截取。

m0_49515138的博客 1203

MATLAB功率谱函数psd与pwelch的使用

在网上看到 clear; Fs=1000; n=0:1/Fs:1; y=cos(2*pi*40*n)+3*cos(2*pi*100*n)+randn(size(n)); Nfft=1000; window=hanning(100); noverlap=20; dflag='none'; [Pxx,f]=psd(y,Nfft,Fs,window,noverlap); figure plot(f,10*log10(Pxx)); xlabel('frequency/Hz');ylab

qq_41687938的博客 2万+

js数组去重

一、理解 根据当前数组产生一个去除重复元素后的新数组 如: [6,9,8,7,2,5,6,5,4,5,6,4,5] ==> [6,9,8,7,2,5,4] 二、实现代码 forEach()和indexOf() 说明: 本质是双重遍历, 效率差些 /* 接收一个数组为参数,返回一个去重的数组 */ function unique (array) { // 定义一个空数组 const resultArr = [] // 循环遍历未去重的数组 a

weixin_43960320的博客 842

Discrete Optimization (Coursera) 学习笔记 Week 1 introduction (开个帖子)

Week 1 Introduction 这位教授Pascal Van Hentenryck 真的算是优化领域神级别的人物了吧?截一张Google scholar的图大家感受一下… 居然在Coursera上看到了他开的课:Discrete Optimization。试听了几节后,发现讲得很有激情,而且深入浅出。遂决定花暑假跟完这一门课。 这门课每周花两三个小时介绍基础概念,然后得花十几个小时写作业(coding)… 一开始以为Coursera上的课的作业应该不会太难,然后第一次作业(knapsack)我就被

ZJ_11701的博客 656

AI落地困局与破局者FDE:从技术神话到价值实干的战略转型

AI落地困局与破局者FDE:从技术神话到价值实干的战略转型 当前AI企业级应用面临三大核心挑战:业务场景深度非标化、技术落地"最后一公里"困局、以及市场竞争焦点转向实用价值。前线部署工程师(FDE)作为破局关键,通过技术-业务-产品三维交汇的复合能力,将AI从实验室推向生产环境。FDE不仅是技术架构师,更是业务价值挖掘机和产品进化传感器,通过"碎石路-高速公路"双循环模式,将定制化需求沉淀为可复用的平台能力。这种模式颠覆了传统SaaS的销售逻辑,形成基于价值的J型增长

随笔记录-分享&记忆 4002

5 个JavaScript 中 Slice()的用例

英文 | https://betterprogramming.pub/5-use-cases-for-slice-in-javascript-13462f2e177f翻译 | 杨小爱sli...

web前端开发 1045

Zemax非序列模式新手入门:从零搭建一个抛物面反射镜系统(含灯丝光源与探测器设置)

本文详细介绍了如何在Zemax非序列模式下从零搭建抛物面反射镜系统,包括灯丝光源配置、反射镜建模和探测器设置等关键步骤。通过实战指南,帮助光学设计新手快速掌握非序列模式的应用技巧,特别适合处理复杂光线传播场景如反射镜系统和杂散光分析。

weixin_28717431的博客 436

JavaScript中slice()和splice()方法

slice()方法 如果只有一个参数slice(i),则表示从第i个位置开始,显示到最后一个数据 如果有两个参数slice(i,j),则表示从第i个位置开始,第j个位置结束显示 该操作不会影响原来的数组 var arr = [1, 4, 5, 4, 5] console.log(arr.slice(1)) //4,5,4,5 console...

weixin_38436883的博客 410

鸢尾花分类预测

鸢尾花数据总用有150个样本,是一个典型的分类数据集,共有3个类别,分别是山鸢尾(Iris-setosa)、变色鸢尾(Iris-versicolor)和维吉尼亚鸢尾(Iris-virginica),每个样本的特征有4列sepal_length:萼片长度sepal_width:萼片宽度petal_length:花瓣长度petal_width:花瓣宽度这里我们定义了随机森林模型作为实例,来进行模型训练,之后我们会对其使用网格搜索找到最优的参数。

优快云 精品推荐 2189

C 语言多文件编程 : 大型程序的组织与管理

本文介绍了C语言多文件编程的核心概念与实践方法。主要内容包括:1. 多文件编程的必要性:解决单文件编程在大型项目中的维护和协作问题;2. 文件组织方式:头文件(.h)负责声明接口,源文件(.c)实现具体功能;3. 编译链接过程:分阶段编译和链接多个源文件;4. 头文件设计原则:包含接口声明、使用保护机制、保持自包含性;5. 模块化实践:通过示例展示学生信息管理系统的模块划分;6. 构建工具:介绍Makefile的编写和使用方法。文章还提供了创建静态库和动态库的指导,并强调了模块化设计、信息隐藏等软件工程原则

2503_91057718的博客 1947

js知识——数组slice()方法和splice()方法

数组slice()方法和splice()方法 /** *slice()方法接收两个参数,一个是起始位置,一个是结束位置 * 可以只传一个起始位置,就会返回从起始位置到结尾的所有项 * 他会返回起始位置和结束位置之间的项,包含起始位置,但是不包含结束位置 */ var arr = [1,2,3,4,5,6,7,8,9,0]; console.log(arr.slice(1))//[2, 3, 4, 5, 6, 7, 8, 9, 0] console.log(arr.slice(1,4))//[2, 3, 4]

weixin_44867717的博客 821

芒果YOLO11改进21:检测头Head篇:即插即用|新颖轻量化非对称多级压缩LADH检测头,原创改进适配YOLOv8高效检测头,检测头新颖性改进,全网首发独一份

检测头Head篇:即插即用|新颖轻量化非对称多级压缩LADH检测头,原创改进适配YOLOv8高效检测头,检测头新颖性改进,全网首发独一份

包括YOLOv5、YOLOv7、YOLOv8等模型改进 792

数组的slice()和splice()方法

slice()slice的英文意思是一部分,所以这个方法就是用来截取数组一部分的函数 slice(start[, end]) 两个参数,分别表示起止位置,第二个参数可省略,左闭右开[ ),不影响原来数组var num = [0,1,2,3,4,5]; num.slice(1); //[1,2,3,4,5] num.slice(1,4); //[1,2,3] num;[0,1,2,3,4,5]

Y_G_G的博客 1903

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

JS 数组操作的利器:splice() 和 slice() 方法详解

JavaScript中的数组操作是编程中常见的任务之一。splice()和slice()方法是两个非常有用的数组方法,可以帮助我们在数组中插入、删除、替换元素,以及提取子数组。在本篇博客中,我们将深入探讨splice()和slice()方法的用法,并提供一些实用的代码示例。

TianXuab的博客 5890

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

js数组截取方式splice()和slice()方法

js数组截取方式splice()和slice()方法 1.splice() splice() 方法可以添加元素、删除元素,也可以截取数组片段。删除元素时,将返回被删除的数组片段,因此可以使用 splice() 方法截取数组片段 // 传递一个参数,则该方法仅执行删除操作,参数值指定删除元素的起始下标(包含该下标元素) //splice() 方法将删除后面所有元素 var a = [1,2,3,4,5]; //定义数组 var b = a.splice(2); //从第三个元素开始执行删除 console

curryFMVP的博客 1万+

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

splice()和slice()方法切割数组的用法

受限于两种方法在切割数组上的区别,splice方法用while切割更合适,而slice方法用for循环切割更合适。今天复习了数组的方法,但是对于splice()方法和slice()还有一些模糊,研究之后决定分享出来。两种方法都可以对数组进行切割,但是有一定的区别。示例:用slice方法将数组切割为每个数组三个。示例:用splice方法将数组切割为偶数个。1.splice方法。...

m0_60850969的博客 8244

Js中数组的slice()和splice()方法

slice()可以从数组中提指定元素,指定元素为索引的方式 该方法不会改变本身的数组,而是将提取元素封装到新的数组返回 需要注意的是: 截取开始的索引,包含开始索引 截取结束的索引,不包含结束索引 arr.slice(3,5)包含索引为3的值 但不包含索引为5的值 arr.slice(a,b)第二个参数可以省略不写,此时会截...

weixin_53056046的博客 413

(基础)JavaScript截取数组:使用splice()和slice()方法

使用 splice() 和 slice() 方法,增加,删除,截取

次顶级的博客 3887

JS截取数组:使用splice()和slice()方法

JS截取数组:使用splice()和slice()方法

H_jrqn的博客 760

数组slice()方法和splice()方法的目的以及区别

slice()不修改原数组,返回原始数组的子集,用于从数组中截取元素 ,而splice()修改原数组,将删除的元素作为数组返回,用于在数组中插入或者修改元素。从原数组中截取一段元素到新的数组中,其格式为arr.slice(start,end),其中所截取的元素不包括end那个元素。用于向数组中添加或者删除元素,并返回被删除的元素,第一个参数表示插入或者删除的数组元素位置,第二个元素表示要删除的元素数。当多个参数时:第一个参数表示截取多少个元素,后面其它元素会添加到截取出来元素的后面。......

qq_59541478的博客 265

JavaScript学习笔记:数组的concat()、slice()和splice()方法

JavaScript为操作已经包含在数组中的项提供了很多方法。比如push()、pop()、shift()和unshift()实现数组的增删操作、sort()和reverse()对数组项进行排序操作。今天学习操作数组的其他方法:concat()、slice()和splice()。 concat()方法 concat()方法可以简单的将其理解为合并数组。基于当前数组中的所有项创建一个新数组。简单...

yushang的博客 371

数组操作方法之slice()和splice()

一直以来对数组操作方法记忆都是模糊不清的,所以趁今天有时间就系统的梳理下,以使自己在以后的工作中能够更加熟练的根据需要操作数组,废话不多说,直接进入正题: slice()方法能够基于到当前数组去创建一个新数组,他能够接受一或两个参数,即要返回项的起始位置和结束位置。在只有一个参数的情况下,slice()方法返回从该参数指定位 置开始到当前数组末尾的所有项。如果有两个参数,该方法返回起始和结束位

Positive129的博客 636

JS 中数组 slice() 方法和 splice() 的区别

1、slice(start,end) 方法 定义:返回一个新的数组,该方法可从已有的数组中返回选定的元素。 参数:start 数组的开始位置(不可为空);end 数组的结束位置(为空数组最后位置) 实例:如下 var arr = new Array(3); arr[0] = "lisi"; arr[1] = "wangwu"; arr[2] = "zhouyi"; console.lo...

Hakim 781

js数组方法 slice()和splice()

说实在我之前都不怎么分的清这个两个函数,因为这两个函数名字那么像,经常我就弄混了,平常使用的时候都先查一下我需要使用的实际是哪个函数。这样不说很浪费时间,但是也是影响了开发效率,所以我决定今天就彻底区分这两个函数,通过写一个随笔,加深自己的记忆。 `slice(star,end)`是一次截取部分数据但是不会改变原数组的方法,它有两个参数,一个是截取的开始`index`,一个是结束`in...

216
上一篇: Vue中$event的用法
下一篇: JS数组中的apply含义
我的div呢
博客等级 码龄8年 2粉丝 16原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值