js 中遍历获取对象属性 /迭代对象

JavaScript 对象属性遍历方法详解 通过上述方法,可灵活应对对象属性遍历的不同需求,结合场景选择最合适的策略。,但不含 Symbol 属性),适合需要完整属性列表的场景。的数组(不包含原型链属性),适合需要明确操作键名的场景。(无论是否可枚举),适用于处理唯一标识符场景。的数组,适合仅需操作值的场景。),适合同时处理键和值的场景。返回对象自身所有属性名(包括。),是最全面的属性遍历方法。返回对象自身所有属性名(含。专门获取对象自身所有。 阅读详情

js中遍历获取对象属性和方法主要有Object.keys()、Object.getOwnPropertyNames()、for...in...三种方式

1、Object.keys()、1、1、Object.getOwnPropertyNames()、for...in...区别

1、1 for in会输出自身以及原型链上可枚举的属性。

          for (variable in object) {...}
           variable  在每次迭代时,将不同的属性名分配给变量。   object    被迭代枚举其属性的对象。

           通常,在迭代过程中最好不要在对象上进行添加、修改或者删除属性的操作,除非是对当前正在被访问的属性。
           for...in不应该用于迭代一个 Array,其中索引顺序很重要。

//下面的函数接受一个对象作为参数。被调用时迭代传入对象的所有可枚举属性然后返回一个所有属性名和其对应
//值的字符串。

var obj = {a:1, b:2, c:3};
for (var prop in obj) {
  console.log("obj." + prop + " = " + obj[prop]);
}
// Output:
// "obj.a = 1"
// "obj.b = 2"
// "obj.c = 3"
//下面的函数说明了hasOwnProperty()的用法:继承的属性不显示。
var triangle = {a: 1, b: 2, c: 3};

function ColoredTriangle() {
  this.color = 'red';
}

ColoredTriangle.prototype = triangle;

var obj = new ColoredTriangle();

for (var prop in obj) {
  if (obj.hasOwnProperty(prop)) {
    console.log(`obj.${prop} = ${obj[prop]}`);
  } 
}

// Output:
// "obj.color = red"

1、2 与for of的区别

          for (variable of iterable) {
           //statements  variable  在每次迭代中,将不同属性的值分配给变量。   iterable  被迭代枚举其属性的对象。
         }

 

2、Object.keys用来获取对象自身可枚举的属性键。

3、Object.getOwnPropertyNames用来获取对象自身的全部属性名

2、可枚举属性和不可枚举属性

 在JavaScript中,对象的属性分为可枚举和不可枚举之分,它们是由属性的enumerable值决定的。可枚举性决定了这个属性能否被for…in查找遍历到。

一、怎么判断属性是否可枚举

  js中基本包装类型的原型属性是不可枚举的,如Object, Array, Number等,如果你写出这样的代码遍历其中的属性:

1

2

3

4

var num = new Number();

for(var pro in num) {

    console.log("num." + pro + " = " + num[pro]);

}

它的输出结果会是空。这是因为Number中内置的属性是不可枚举的,所以不能被for…in访问到。

Object对象的propertyIsEnumerable()方法可以判断此对象是否包含某个属性,并且这个属性是否可枚举。

需要注意的是:如果判断的属性存在于Object对象的原型内,不管它是否可枚举都会返回false。

 

JavaScript中的字符串是一种基本的数据类型,用于表示文本 JavaScript中的字符串是一种基本的数据类型,用于表示文本。字符串可以由单引号 (')、双引号 (“”) 或反引号(``)包围的字符序列组成。 阅读详情

相关推荐

上下文理解的AI增强方案:AI应用架构师的架构洞察

本文将从AI应用架构师的视角,深入探讨“上下文理解”的技术本质、核心挑战,以及一套可落地的上下文增强架构方案。我们会拆解上下文理解的底层需求,分析架构设计中的关键决策,并通过具体案例展示如何构建一个能“记住过去、理解现在、预测未来”的AI系统。三个维度:上下文的内容范围(短期/中期/长期)、数据类型(文本/结构化/多模态)、技术挑战(窗口限制/信息过载/跨会话一致性);三种架构模式:分层上下文存储(热/冷数据分离)、上下文路由(按需筛选)、动态压缩(适配模型窗口);四个关键组件。

欢迎来到我的优快云空间!这里聚焦AI大模型应用实战,分享前沿技术、实战案例与开发经验。 219

JS遍历对象属性的7种方式

在有些开发场景下,可能需要获取一个对象的所有属性字段名,或者同时获取属性字段名和属性值,比如下面的一个普通的对象:},属性值为,实际过程中的对象可能更加复杂,字段也会更多。对于遍历一个对象的属性,最容易想到的就是使用。...

蜗牛在奔跑的博客 2万+

Linux系统下SAPGUI安装包选择与避坑指南

本文详细介绍了在Linux系统下选择和安装SAPGUI安装包的策略与避坑指南。重点解析了不同版本安装包的关键区别,特别是Linux版必须包含linux-lib.jar和linux64-lib.jar文件,避免误用Mac或Windows版导致的兼容性问题。文章还提供了针对Ubuntu、RHEL等不同Linux发行版的安装实战指南,以及常见报错的解决方案,帮助用户顺利完成SAPGUI的安装与配置。

weixin_28366353的博客 673

详解JS遍历对象的五种方法

本文主要讲解Js遍历Object对象的五种方法:for in、keys+for of、values+for of、entries+for of、getOwnPropertyNames+for of

lplovewjm的博客 4201

MIPI CSI-2数据加扰技术解析:LFSR实现与多通道同步策略

本文深入解析了MIPI CSI-2协议中的数据加扰技术,该技术通过线性反馈移位寄存器(LFSR)对图像数据进行随机化处理,旨在有效降低高速传输中的电磁干扰。文章详细阐述了LFSR的工作原理、D-PHY与C-PHY物理层不同的初始化与同步策略,并探讨了多通道同步的实现方法,为高速接口的EMC设计与调试提供了实践指导。

weixin_29207149的博客 384

STC8G1K08A的10位PWM避坑指南:为什么你的占空比调节总失效?(附寄存器操作时序图)

本文深入剖析了STC8G1K08A单片机10位PWM功能中占空比调节失效的核心原因,揭示了数据手册未明确指出的寄存器操作时序陷阱。通过对比错误与正确配置的波形,文章指出关键在于更新占空比高2位前需临时关闭PWM输出,并提供了经过验证的安全操作宏与函数库,帮助开发者彻底解决此问题,实现0%-100%的平滑控制。

yyy34的博客 747

JS遍历对象的七种方法

1.Object.defineProperty,使用enumerable:true,才能被枚举,默认enumerable:false不可被枚举。返回的是一个大杂烩数组,即包含了对象的所有属性,无论是否可枚举还是属性是symbol,还是继承,将所有的属性返回。的特性会导致一个问题,其继承的属性会被遍历到,所以当我们不想要遍历被继承的属性,那么我们就可以使用。属性,返回形式依旧是数组,值得注意的是,在对象初始化的时候,内部是不会包含任何。可以看出,可以得到对象中,可以获取包含Symol属性的所有的属性值。

weixin_43465508的博客 2万+

华为OD机试真题 新系统【查找能被整除的最大整数】

华为OD新系统机试真题【查找能被整除的最大整数】,提供C语言、Java、C++、Python、Go、JavaScript源码实现,并提供完整思路讲解,以及在线OJ模拟做题。华为OD机试真题【查找能被整除的最大整数】

qq_45776114的博客 672

JavaScript中遍历对象属性方法详解

JavaScript中有多种方式遍历对象中的属性,本文中所说的对象都是普通的Object对象,不包括Array、Map、Set等实现了Iterator接口的对象。 对象属性的遍历主要受几方面的影响: 能否遍历原型链上的属性、能否遍历不可枚举属性、能否遍历Symbol属性。 遍历对象属性的方式包括: for...in、Object.keys()、Object.getOwnPropertyNames...

孙群 6992

飞牛NAS系统盘占用过高排查与解决全记录(已有效解决)

📢NAS弹出系统盘占用过高预警?别慌!亲测解决全流程来啦~ 精准定位根源+安全迁移数据,附详细实操步骤,帮同款困扰的你高效释空间、少走弯路!

XiaoqiangClub的博客 3121

Qlib:微软开源的AI量化投资平台 极简入门快速上手教程:使用 Qlib 进行中芯国际股价回测和预测

Qlib是由微软开源的面向AI量化投资的工具包。它提供了构建量化投资模型所需的基础设施,旨在帮助研究者和从业人员更高效地进行量化研究和策略开发。

AI天才研究院 5411

2021-09-06 笔记39

C1任务-39:For循环 任务背景 当我们在编写代码的时候,假如您需要运行代码多次,且每次使用不同的值,那么循环相当方便使用。 任务目标 理解JavaScript的for循环代码结构 理解JavaScript的for循环对数字、数组、对象的操作 掌握JavaScript的for循环的迭代器递增、递减的操作 任务训练 1.for循环的使用方法: for–多次遍历代码块 for/in–遍历对象属性 for循环是您希望创建循环时经常使用的语法结构,代码结构如下 2.for循环代码实例一(普通遍历): 3.

m0_49869756的博客 135

HyperLynx(十三)Hyperlynx前放置之对网络的EMC分析

在“Spectrum Analyzer”对话框的“Stimulus”(激励)栏中,设置激励源频率为100MHz,选择“IC modeling”为“Fast-Strong”,并按图所示设置其他选项。显然,在仿真的基频上,它的幅值最大,将鼠标光标置于柱状图上,可以读取其值为64.28mA,这个数值是由选定的驱动芯片决定的。按上图所示的原理图,在接收端增加一个并联的RC负载,再次运行仿真,结果如图所示。在对话框左侧的“Pins”列表中,显示出了已添加电流探针的引脚,可以在此列表中选择所要仿真的目标。...

小幽余生不加糖 4678

JavaScript遍历对象方法总结

前言 本篇内容将按照下图展开: 遍历Object Object最常见的遍历方法方法就是使用for…in…,但其有一定的局限性,比如只能遍历可枚举属性。虽然Object无法直接使用for循环和forEach,但是经过Reflect.ownKeys / Object.getOwnPropertyNames / Object.getOwnPropertySymbols / Object.keys等方法转换直接得到Object中key值的集合后,是可以通过for循环和forEach来遍历的。 方法 获取属

前端学习笔记 2237

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

JavaScript深度迭代遍历未知对象

文章出自个人博客https://knightyun.github.io/2019/01/27/js-iteration,转载请申明 面向对象编程的语言,都存在对对象的一些操作,其中就包括遍历未知对象的属性值。 通常情况 常见的遍历对象的方法: var o = { name: 'cloud', age: 20 } for (i in o) { console.log(i ...

knight-yun的博客 3739

深度学习工具包 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")

JavaScript:js数组/对象遍历方法

undefinedfor使用最基本的for循环可以遍历数组。for...of语句用来遍历可迭代对象(包括数组、Set、Map、字符串等),它可以替代传统的for循环和forEach方法。for...of循环每次迭代都将返回一个值,而不是索引。循环还可以遍历字符串,并且能够正确处理 Unicode 字符。需要注意的是:for...of 循环不能遍历普通对象,因为它们不是可迭代对象。对于普通对象,可以使用for...in循环来遍历对象的属性。

snow的博客 7323

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

【JS】属性的遍历

关于属性的枚举和循环遍历

ccuucc的博客 2286

JS for...of iterator(迭代器),for...in可枚举,不可枚举属性,对象属性遍历

介绍JavaScript中的三个关键概念:迭代器、可枚举属性和对象描述属性,迭代器是一种访问集合元素的方法,通过Symbol.iterator属性定义了一个迭代器生成函数,提供next方法来按顺序获取集合中的元素,可通过for...of遍历迭代器。通过Object.getOwnPropertyDescriptor方法获取的包含属性特性信息的对象,描述属性值、是否可写、是否可枚举和是否可配置等信息,通过Object.defineProperty方法,可以将属性设置为不可枚举。可枚举属性可以通过for...in

SupperSA的博客 1264

让JS对象也能for-of遍历:前端老铁都懂的可迭代魔法

给对象挂,让它也能享受for-of的丝滑。下次 review 再看到满屏,就把这篇文章甩过去,告诉他:“兄弟,2026 年了,换个姿势写循环吧!祝你早日脱离 for-in 苦海,遍历对象时不再踩到原型屎。去试试,把配置树、状态树、甚至老板娘的购物车都变成可迭代,回来跟我说一句:“真香!欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。DTcode7的博客首页。

一个做过前端开发的产品经理,经历过睿智产品的折磨导致脱发之后,励志要翻身"农奴"把歌唱,一边打入敌人内部一边持续提升自己,为我们广大开发同胞谋福祉,坚决抵制睿智产品折磨我们码农兄弟! 725

Vue.js基础-04-循环语句(遍历数组、迭代对象属性、遍历数组范围)

1. 遍历数组 1.1 < li > 标签中使用 语法示例 完整示例 1.2 模板中使用 语法示例 完整示例 2. 迭代对象属性 2.1 迭代第一个参数(值) 2.2 迭代第二个参数(键名) 2.3 第三个参数(索引值) 3. 遍历整数范围...

架构+开发+运维 1043

js map遍历 修改对象里面的值_JavaScript中数据结构的遍历

一、数据结构在JavaScript中常见的数据结构分为原始类型(Boolean、String、undefined、null)和引用类型(Object)。引用类型里细分又可分为Array、Function、Date等。对象和数组Array的区别在于:对象使用命名索引(即key,key-value对中的key类型为string),而数组是特殊类型的对象其使用数字索引。如果希望元素名为字符串(文本),则...

weixin_42549037的博客 5946

【迭代器】js 迭代器与可迭代对象终极详解

本文深入探讨了JavaScript迭代器的核心概念与应用,涵盖从基础协议到高级生成器的完整知识体系。主要内容包括: 核心协议解析:详细介绍了可迭代协议和迭代器协议,以及常见消费场景。 遍历方法对比:比较了for...of、for...in和for await...of的特性差异。 自定义迭代器实现:展示了如何从零手写同步迭代器,包括return/throw处理。 生成器深度解析:深入讲解生成器函数与对象的区别、yield双向通信、状态机原理,以及yield*的委托机制。 实用工具箱:列举了常见的可迭代API

qq_38161537的博客 1200

js 对象集合遍历取属性值

在JavaScript中,如果要遍历一个对象集合(比如数组中每个元素都是对象),并取出每个对象的属性值,可以采用多种方式。

qq_33240556的博客 1677

js数组遍历、对象遍历、字符串遍历

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_34138139的博客 2万+

用js如何输出一个对象的所有属性值(迭代/枚举)

做过js的人都知道,变量就var,一般我们是看不出来这个var有什么属性,要想知道它的各种属性有什么,方法如下: function ds(demo) { var str = &quot;&quot;; for (var i in demo.data) { str += i + &quot; = &quot; + demo.data[i]...

余光的博客 2万+

js循环/迭代/遍历有多少方法

for…in 循环将遍历对象的所有可枚举属性。

furfur-jiang的博客 1011
上一篇: JavaScript等于 == 与 恒等于 === 的区别
下一篇: for.in for..of..
M612a34
博客等级 码龄9年 22粉丝 43原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值